其他測資都對,
只有1000000那筆
我ㄉ答案是3626820
哪裡錯ㄌ??
#include<stdio.h>
#include<stdlib.h>
int prime[1000010]={0};
int main()
{
int a,b,pp[80000]={0},top=0;
prime[1]=1;
for(a=2;a<1000010;a++)
if(prime[a]==0)
{
pp[top++]=a;
for(b=2;a*b<1000010;b++)
prime[a*b]=1;
}
int n;
while(scanf("%d",&n)==1)
{
int sum=0,m=0;
for(a=0;a<80000&&pp[a]<=n;a++)
{
m=pp[a];
while(n/m>0)
{
sum+=n/m;
m=m*pp[a];
}
}
printf("%d\n",sum);
}
return 0;
}