include
long int answer[500003];
bool mark[500003];
int main()
{
long int t;
long int i,j;
long int temp;
long int N;
for(i=0;i<=500000;i++)
answer[i]=1;
for(i=0;i<=707;i++)
answer[i*i]=i+1;
answer[0]=0;
answer[1]=1;
answer[2]=1;
answer[3]=1;
for(i=2;i<=707;i++)
{
for(j=i+1;j<=(500000/i);j++)
{
temp=((i%1000000)+(answer[i*j])%1000000)%1000000;
if((temp*j>=1000000))
mark[i*j]=true;
answer[i*j]=((temp+j)%1000000);
}
}
scanf("%ld",&t);
while(t--)
{
scanf("%ld",&N);
if(mark[N])
printf("%ld\n",answer[N]);
else
printf("%ld\n",answer[N]);
}
return 0;
}
plzzzzzz help me,where i wrong.....
i always receive wrong answer......
plzzzzzz help????????