自然数的平方数是:1 4 9 16 25 …
自然数的立方数是:1 8 27 64 125 …
自然数的4次方数是:1 16 81 256 …
…
这些数字都可以称为次方数。
1~10000中,去掉所有的次方数,还剩下多少个数字?
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define inf 0x3f3f3f3f
using namespace std;
int sum[10001]={0};
int main(){
long long i,j;
for(i=1;i<=100;i++){
for(j=2;j<=14;j++){
if((int)pow(i,j)<=10000)
sum[(int)pow(i,j)]=1;
if(pow(i,j)>10000)
break;
}
}
j=0;
for(i=1;i<=10000;i++){
if(sum[i]==0){
j++;
}
}
cout<<j<<endl;
return 0;
}