题解 | #质数因子#

质数因子

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

#include <stdio.h>
#include<math.h>
int main()
{
    int i = 2, n = 0;
    scanf("%d", &n);
    //因为范围是左闭区间,包括1,看到很多解题者都漏掉了这一情况,不够严谨
    if(n==1)
    {
        printf("1\n");
    }
    //判断到sqrt(n)就可以,因为此时n已经是素数,再往上判断没意义
    for (i = 2; (i<=sqrt(n)); i++)
    {
        while (n % i == 0)
        {
            printf("%d ", i);
            n /= i;
        }
    }
    //循环结束如果n还没除尽,说明此时n是素数
    if (n > 1)
    {
        printf("%d\n", n);
    }
    return 0;
}

全部评论

相关推荐

ros275229:社团删了吧,cf因该1200才勉强入门吧,也删了,你可以写算法刷了多少道,都比这个好
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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