手办
题目描述
分析
为什么我看到有理数, 想到的是 3.1415..., 7/8, 是我理解错题了? 这题让求的不就是 n 的约数中,开三次方依旧为整数的数!!!!
C++ 代码
#include <iostream>
using namespace std;
const int N = 1010;
int t, n, cnt, num[N];
// 将 1 ~ 1e9 中 开三次方依旧为整数的,存放到数组中
void init()
{
cnt = 0;
for(int i = 1; i * i * i <= 1e9; i ++)
{
num[cnt++] = i * i * i;
}
return ;
}
int main()
{
cin >> t;
init();
while(t--)
{
cin >> n;
int res = 0;
// 枚举数组中的数, 看它是否为 n 的约数
for(int i = 0; num[i] <= n; i ++)
if(n%num[i] == 0)
res ++;
cout << res << endl;
}
return 0;
}