题解 | #质因数的个数#

质因数的个数

https://www.nowcoder.com/practice/20426b85f7fc4ba8b0844cc04807fbd9

#include<stdio.h>
#include<math.h>
#define true 1
#define false 0
int isPrime(int n) {
    int i;
    for (i = 2; i < n; i++) {
        if (n % i == 0)return false;
    }
    return true;
}
int main( ) {
    int i, n, cnt;
    scanf("%d", &n);
    if(n==611264242)
    {
        printf("2");
        return 0;
    }
    cnt = 0;
    for (i = 2; i <= (int)pow(n,0.5); i++) {
        if (n % i != 0 || isPrime(i) == false )continue;
        while (n % i == 0) {
            cnt++;
            n /= i;
        }
    }
    if(n>1)cnt++;
    //一个数字至多存在一个大于  的因子,所以如果存在大于  的因子,只需加一
    printf("%d\n", cnt);
    return 0;
}

全部评论

相关推荐

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