您的位置:首页 > 其它

题目1207:质因数的个数

2017-04-22 12:10 267 查看

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <string>
#include <string.h>
#include <vector>
#include <queue>
#include <stack>
#include <sstream>
using namespace std;
//1207
int prime[10010];
int mark[100010];
int cntP; //记录质因数
int n;
void init(){
    cntP=0;
    for(int i=2;i<=100000;i++){
        if(mark[i]>0)   continue;
        prime[cntP++]=i;
        if(i>=1000) continue;
        for(int j=2*i;j<=100000;j+=i){
            mark[j]=1;
        }
    }
}
int main(){
    init();
    while(cin>>n){
        int ans=0;
        for(int i=0;i<cntP;i++){
            while(n%prime[i]==0){
                ans++;
                n/=prime[i];
            }
        }
        if(n>1) ans++;
        cout<<ans<<endl;
    }
    return 0;
}
/**************************************************************
    Problem: 1207
    User: cust123
    Language: C++
    Result: Accepted
    Time:20 ms
    Memory:1948 kb
****************************************************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: