题解 | 质因数的个数

质因数的个数

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

#include <iostream>
#include <vector>
using namespace std;

vector<int> getVector(int n){
    vector<int> nums(n+1);
    vector<int> res;
    for(int i=2;i<=n;i++){
        if(nums[i]==0){
            res.push_back(i);
        }
        for(int j=i*2;j<=n;j+=i){
            nums[j] = 1;
        }
    }
    return res;
}

int main() {
    int n;
    scanf("%d",&n);
    vector<int> res = getVector(32001);
    int i=0;
    int count = 0;
    while(i<res.size()){
        while(i<res.size()&&n%res[i]==0){
            // printf("%d ",res[i]);
            count++;
            n = n/res[i];
        }
        i++;
    }
    if(n>1){
    	count++;
	}
    printf("%d",count);
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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