自然数的平方数是:1 4 9 16 25 …
自然数的立方数是:1 8 27 64 125 …
自然数的4次方数是:1 16 81 256 …
…
这些数字都可以称为次方数。
1~10000中,去掉所有的次方数,还剩下多少个数字?
答案: 9875
解题过程
范围考虑:2的14次方>10000;100的平方=10000。直接按题意解就行了。
如何用win10自带的计算器计算,win10只能计算log以10为底的数。但我们可以变通,用logN / log2就可以了
附上代码
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int a[10001]={0};
int index=0;
int count=0;
a[1]=1;//1-代表次方数;0-代表非次方数
for(int i=2;i<=14;i++)
{
for(int j=2;j<=100;j++)
{
index=(int)pow(j,i);
if(index<=10000)
a[index]=1;
else
continue;
}
}
for(int i=1;i<=10000;i++)
{
if(a[i]==0)
count++;
}
cout<<count<<endl;
return 0;
}