###约数个数定理
首先将整数分解
例如:将378000 分解质因数378000=24×33×53×71
由约数个数定理可知378000共有正约数(4+1)×(3+1)×(3+1)×(1+1)=160个。
#include <stdio.h>
#define ll long long
int main(void)
{
ll n;
while(scanf("%lld", &n)&&n)
{
int a[4]={1, 1, 1, 1};
int b[4]={2, 3, 5, 7};
for(int i=0; i<4; i++)
{
while(n%b[i]==0)
{
a[i]++;
n/=b[i];
}
}
printf("%d\n", a[0]*a[1]*a[2]*a[3]);
}
return 0;
}
首先,所有数如有约数,必然是 1,2,3,5,7本身或者倍数。