题解 | #质数因子# C++解法,帮二楼大佬改进后的代码,3ms通过

质数因子

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

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long m;
    while(cin>>m)
    {
        for(long i=2;i*i<=m;i++)
        {
            while(m%i==0)
            {
                cout<<i<<" ";
                m/=i;
            }
        }
        if(m>=2) cout<<m<<" ";//如果m=1,则while循环中刚好被质数分解完,如果大于1,说明没有被分解完,m就是那最后一个质数
                              //同时,这句也可以应对输入为质数的特殊情况
        cout<<endl;
    }
}
全部评论
写成 i <= m / i 会更好
1
送花
回复
分享
发布于 04-22 00:18 安徽
大佬,这个i*i<=m,能不能说说啊,
点赞
送花
回复
分享
发布于 2022-09-02 17:03 湖南
滴滴
校招火热招聘中
官网直投

相关推荐

32 3 评论
分享
牛客网
牛客企业服务