需要注意判断n是否为质数,个数有所不同
#include<stdio.h> int main(){ int n; while(scanf("%d",&n)!=EOF){ int count=0; for(int i=2;i*i<=n;i++){ while(n%i==0){ count++; n/=i; } } if(n>1){ //质数时 printf("%d\n",count+1); }else{ //非质数时 printf("%d\n",count); } } return 0; }
需要注意判断n是否为质数,个数有所不同
#include<stdio.h> int main(){ int n; while(scanf("%d",&n)!=EOF){ int count=0; for(int i=2;i*i<=n;i++){ while(n%i==0){ count++; n/=i; } } if(n>1){ //质数时 printf("%d\n",count+1); }else{ //非质数时 printf("%d\n",count); } } return 0; }