C++质因数分解,为何只输出一个3?
45/15和15/5都会输出三,但执行结果只有一个
当某个i被整除时,下一个循环你要继续用这个i进行整除判断,不能加1,所以当a%i==0时,最后你要i--,这样下一个循环就继续用之前的i值进行判断了
另外你这么写的话,最后会多一个乘号的
#include <iostream>
using namespace std;
int main()
{
int a,i,n,f=1;
cout<<"请输入需要分解的正整数: ";
cin>>a;
for(i=2;i<=a;i++)
{
if(a%i==0)
{
if(f!=1)
cout<<"*";
f=0;
cout<<i;
a=a/i;
i--;
}
}
return 0;
}