[C++经典题目]:如何分解一个正整数的质因数

题目

将一个正整数分解质因数。例如:输入90,输出90=233*5,输入5,输出5=5

问题分析:

分解一个数的因数(短除法):用整数n在2~n之间找到能被整除的最小因数,其商作为新的值赋给n,重复上一步操作,不断输出因数,直至最后能被整除的最小数等于n本身。

#include <iostream>
using namespace std;
int main()
{
   int n;
   cin>>n;
   int i;
   int k=0;
   for(i=2;i<=n;i++)
   {
    if(k==0&&n%i==0)//用k的值限定第一次输出且仅输出一次"n=i1" 
    {
     cout<<n<<"="<<i;
     n/=i;
   k=1;//防止循环进行再输出"n= "
    }
    while(n%i==0){
     cout<<"*"<<i;//循环输出式子...*i1*i2*i3... 
     n/=i;
    }
   }
 
  return 0;
}
发布了19 篇原创文章 · 获赞 0 · 访问量 215

猜你喜欢

转载自blog.csdn.net/weixin_44825297/article/details/105018011