题解 | #质数因子#
质数因子
http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
这个题很好想,但是容易超时。
可能冗杂的思路:
1.从2自增遍历的时候不需要判断是否是因数,因为第一个除开的必然是质数,如果不是的话在增加到他之前就可以被他的因数除开了,不会加到这里。
2.一个数的质因子除去它本身,最大的小于等于他的平方根
3.最后的输出相乘等于这个数,所以直接对数本身操作
#include<bits/stdc++.h> using namespace std; int main(){ long n; while(cin>>n){ for(long i = 2; i<= sqrt(n); i++) if(n%i == 0){ cout<<i<<' '; n = n/i; i = 1; } if(n-1) cout<<n; cout<<endl; } }