运用下面这个方法
若正整数n可分解为p1^a1*p1^a2*…*pk^ak
其中pi为两两不同的素数,ai为对应指数
n的约数个数为(1+a1)*(1+a2)*….*(1+ak)
要好好学数学了。
统计各个素数的个数(存放在数组里),然后相乘并可得到个数
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int x,i,n=10;int a[10002];a[1]=0;memset(a,0,sizeof(a));
while(n--)
{
scanf("%d",&x);
for(i=2;x!=1;i++)
{
while(x%i==0&&x!=1)
{
a[i]++;x/=i;
}
if(x==1)
break;
}
}
x=1;
for(i=2;i<10000;i++)
{
if(a[i]!=0)
{
x=x*(1+a[i])%10;
}
}
printf("%d\n",x);
return 0;
}