A number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... shows the first 20 humble numbers.
Now given a humble number, please write a program to calculate the number of divisors about this humble number.For examle, 4 is a humble,and it have 3 divisors(1,2,4);12 have 6 divisors.思路:
(1)如果一个数分解质因数的形式是:n = x^a * y^b * z^c * ...则M的约数个数sum = (a+1)(b+1)(c+1)...
#include<stdio.h>
#define ll long long
int main()
{
ll n;
ll a[4]={1};
while(scanf("%ld",&n)&&n)
{
for(a[0]=0;n%2==0; n/=2)
{
a[0]++;
}
for(a[1]=0; n%3==0; n/=3)
{
a[1]++;
}
for(a[2]=0;n%5==0;n/=5)
{
a[2]++;
}
for(a[3]=0; n%7==0;n/=7)
{
a[3]++;
}
ll sum=a[0]*a[1]*a[2]*a[3];
printf("%d",sum);
}
return 0;
}
}