#include
using namespace std;
int main()
{
int n;
cout << "请输入一个整数" << endl;
cin >> n;
int a = 2;
if (n == 1)
cout << "无素数因子" << endl;
for(int a=2;a<=n;a++)
{
if (n % a == 0)
{
cout << a << endl;
n /= a;
}
else
{
continue;
}
}
return 0;
}
在输出a之前需要加多一个判断,即a是否是质数,是的话输出,不是的话continue
假设输入120,for 第一次循环 n % a == 0 条件满足,n /= a 后 n 变成60,而下一次循环 a++ 变成3了,后面就无法在从 a = 2 开始,所以为了找到满足条件的 a ,可以在 n /= a 后面再加一个 a--,抵消下一次的 a++。
if (n % a == 0)
{
cout << a << endl;
n /= a;
a--;
}