求约数。例如4的约数为3(1,2,4),12的约数为6,(1,2,3,4,6,12)
直接贴代码
#include<stdio.h>
int a[4]={2,3,5,7};
int b[4];
long long n;
int main(){
while(scanf("%I64d",&n) && n){
int cnt;
for(int i=0;i<4;i++){
b[i]=0;
cnt=0;
while(n%a[i]==0){
cnt++; //计算n为2,3,5,7的几次幂
n/=a[i];
}
b[i]=cnt;
}
int ans=(b[0]+1)*(b[1]+1)*(b[2]+1)*(b[3]+1); //乘法计数原理(不知从何而来,直接用吧)
printf("%d\n",ans);
}
return 0;
}