题解 | #质数因子#

质数因子

http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

需要避免的问题:
1.过大的纯质数 i<=sqrt(input);
2.不要进行无意义的循环 a=1时就退出循环;

int main()
{
    long a,b;
    cin>>a;
    b=sqrt(a); //避免纯质数过大
    for(long i=2;i<=b&&a!=1;i++)//不做无意义的循环
    {
        while(a%i==0)
        {
            a/=i;
            cout<<i<<" ";
        }
    }
    if(a-1) cout<<a<<" ";
    return 0;
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务