题解 | #质数因子#
质数因子
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; }