题解 | #质数因子#

质数因子

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;
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务