题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
#include <iostream>
#include<cmath> //好像用不上,只是习惯性写一下
using namespace std;
int main() {
int n;
cin>>n; //输入要求的数n
while(n!=1) //直到求出最后一个质因数
{
for(int i=2,j=n;i<=n;j-=i,i++) //i从小到大开始验证能否被n整除,j从大到小开始排除;一个数有且只有一个质因数数比他的平方根大,但i每次加一从小验证到n的平方根太慢了,时间来不及,所以用个j加快一下
{
if(n%i==0) //n能整除i,i是n的质因数,输出i,n约一下
{
cout<<i<<' ';
n/=i;
break; //从头开始找约后n的质因数
}
if(j<=i){ //j一路减到没i大,说明现在他本身就是质数(不确定,只是到他给的数据范围是这样的)
cout<<n<<' '; //输出他本身
n=1; //完结撒花
}
}
}
return 0;
}