http://acm.timus.ru/problem.aspx?space=1&num=1049質(zhì)因子分解:題意明顯,注意如果全部相乘會很大,所以得一個(gè)一個(gè)質(zhì)因子分解然后做乘法,一邊乘最好一邊模10,以免溢出:
#include<stdio.h>
#include<string.h>
#include<math.h>
int prime[5000],f[10010],tot;
int main()
{
int i,j,t,ans;
memset(f,0,sizeof(f));
f[1]=1;
i=1;tot=0;
while (i<10000)
{
while (f[i]&&i<10000) i++;
t=i;
tot++;
prime[tot]=i;
while (t<10000)
{
f[t]=1;
t=t+i;
}
}
tot--;
memset(f,0,sizeof(f));
for (i=1;i<=10;i++)
{
scanf("%d",&t);
j=1;
while (t>1&&j<=tot)
{
while (t%prime[j]==0)
{
t=t/prime[j];
f[j]++;
}
j++;
}
}
ans=1;
for (i=1;i<=tot;i++)
if (f[i])
ans=(ans*(f[i]+1));
printf("%d\n",ans);
return 0;
}
質(zhì)因子分解當(dāng)然篩法嘛,沒得說。smy sb寫了好幾個(gè)程序我就只給他改了一點(diǎn)點(diǎn)就ac了,不寫程序不行啊,不敲代碼的弱爆了!