私は spoj cubefrで質問をしていました。
私はコードを書きましたが、答えがいつも間違っているのでわかりません。誰か教えてください。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int arr[1000001];
int i,root,temp,j=0;
for(i=2;i<=100;i++)
{
temp = i*i*i;
root = temp;
while(root <=1000000)
{
arr[root] = 1;
root = root + temp;
}
}
int a[1000001];
a[0]=0;
a[1]=1;
int b=2,n;
int cnt=0;
for(j=2;j<=1000000;j++)
{
if (arr[j] != 1)
{
a[b] = j-cnt;
b++;
}
else
{
b++;
cnt++;
}
}
int k,t;
scanf("%d",&t);
for(k=1;k<=t;k++)
{
scanf("%d",&n);
if (arr[n] == 1)
{
printf("Case %d: Not Cube Free\n", k);
}
else
{
printf("Case %d: %d\n", k, a[n]);
}
}
return 0;
}