题解 | #质数因子#

质数因子

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

相关推荐

04-01 11:08
中原工学院 Java
老六f:感觉这种培训期过了就找理由给你开了
点赞 评论 收藏
分享
1jian10:48h没写面评会变成这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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