1到1000000中既是完全平方数又是完全立方数的数:
1=1²=1³
64=8²=4³
729=27²=9³
4096=64²=16³
10625=125²=25³
46656=216²=36³
117649=147²=49³
262144=192²=64³
531441=244²=81³…
我们可以看出,酷数就是每个完全平方数的3次方,每个完全立方数的2次方,也就是完全六次方数
那我们就可以直接打表,然后循环找出结果
#include <bits/stdc++.h>
using namespace std;
long long a[1000];
int n, m, cnt;
int main() {
cin >> n >> m;
for (int i = 1; i <= 22; i ++)
a[i] = i*i*i*i*i*i;
for (int i = 1; i <= 22; i ++) {
if (a[i] < n || a[i] > m) continue;
else cnt ++;
}
cout << cnt;
return 0;
}
循环到22就行,22的六次方是第一个超过10^8的数