手办

原题链接

题目描述

分析

为什么我看到有理数, 想到的是 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;
}
posted @ 2022-07-17 20:56  ding-yu  阅读(18)  评论(0)    收藏  举报