题解 | #质数因子#

质数因子

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

#include <stdio.h>
#include <math.h>
int bprim(int f) 
{
    int i;
    if (f == 2)
        return 0;
    for (i = 2; i <= sqrt(f); i++)
        if (f % i == 0)
            return 1;
    return 0;
}
int main() 
{
    unsigned long n;
    int i = 2;
    scanf("%lu", &n);
    double dd = sqrt(n * 1.0);
    int pmax = (int)sqrt(n * 1.0);
    while (n > 1) {
        if (!bprim(i)) {
            while ( n >= i) {
                if (n % i == 0) {
                    printf("%d ", i);
                    n = n / i;
                }
                else
                    break;
            }
        }
        i++;
        if (i > pmax) {
            if (n > pmax )
                printf("%lu", n);
            break;
        }
    }
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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