题目描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
最后一个数后面也要有空格。
代码(复杂度可以优化到sqrt(n)):
链接:https://www.nowcoder.com/questionTerminal/196534628ca6490ebce2e336b47b3607
来源:牛客网
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
long int input;
while (cin >> input)
{
for (int a = 2; a<= sqrt(input); a++)
{
//此处是while,把a整除结束才可加1
while (input%a == 0)
{
cout << a << ' ';
input = input / a;
}
}
if (input>1) cout << input << ' ';
}
return 0;
}