/* 自然数的平方数是:1 4 9 16 25 …
自然数的立方数是:1 8 27 64 125 …
自然数的4次方数是:1 16 81 256 …
…
这些数字都可以称为次方数。
1~10000中,去掉所有的次方数,还剩下多少个数字?
*/
void main()
{
int m[10000];
int count=0;
for(int i=0;i<10000;i++)
{
m[i]=i+1;
// printf("%d ",m[i]);
}
for(int x=1;x<10000;x++)
for(int y=2;y<10000;y++)//从2 开始哦
{
int sum=(int)pow(x,y);
if(sum>10000)
break;
else
{
if(m[sum-1]!=0)
m[sum-1]=0;
else continue;
}
}
for(i=0;i<10000;i++)
if(m[i]==0)
count++;
printf("%d\n ",count);
}