质因数个数 题解:简短的解
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,cnt;
while(cin>>n){
cnt=0;
for(int i=2;n>=i*i;){ #如果n还只含有2个质因数,那么一定大于等于i的平方,并且除i后一定小于i的平方。
if(n%i==0){ #这是因为每次循环n还含有的质因数都大于等于i,不写这个i的平方计算量会大幅增加,导致超时
cnt++;
n=n/i;
}
else i++;
}
cout<<cnt+1<<endl;
}
}
登录后发布评论
暂无评论,来抢沙发