题解 | #质数因子#

质数因子

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

#include<stdio.h>
#include<math.h>
  
int main(viod)
{
    int a, b, i = 0;
    scanf("%d", &a);
    for (b = 2; b <= a; b++)
    {
       //最小质数因子必小于输入数字的平方根
        if(b>sqrt(a)+1)
        {
            b=a;
        }
        while (a % b == 0)
        {
            printf("%d ",b);
            a = a / b;
        }
    }
    return 0;
}

这里需要注意的一点就是 最小质数因子必小于输入数字的平方根 如果没有这个条件, 必定超时

全部评论

相关推荐

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