题解 | #质因数的个数#

质因数的个数

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

#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>

using namespace std;

//#define MAXN sqrt(1e9)+1;
const int MAXN=10001;

vector<int> prime;
bool isPrime[MAXN];

void Initial(){
    for(int i=0;i<MAXN;i++){
        isPrime[i]= true;
    }
    isPrime[0]=false;
    isPrime[1]= false;
    for(int i=2;i<MAXN;i++){
        if(!isPrime[i]){
            continue;
        }
        prime.push_back(i);
        for(int j=i*i;j<MAXN;j+=i){
            isPrime[j]=false;
        }
    }
}

int main() {
    Initial();
    int n;
    while (cin>>n){
        int count=0;
        for(int i=0;i<prime.size()&&n>prime[i];i++){
            while(n%prime[i]==0){
                count++;
                n=n/prime[i];
            }
        }
        if(n>1){
            count++;
        }
        cout<<count<<endl;
    }
    return 0;
}



考研复试机试 文章被收录于专栏

考研复试机试

全部评论

相关推荐

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