help! TLE on #9 #10
查看原帖
help! TLE on #9 #10
948216
ZackofZHOU楼主2025/7/31 10:22

记录

代码:

#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;
int t;
ll x,ans,len,prime[200010],cub[1000010];
bool vis[1000010];
void fill_c(int MAX = 1000000)
{
    for(int i = 1;i <= MAX;i++)
        cub[i] = i * i * i;
	for(int i = 2;i <= MAX;i++)
	{
		if(!vis[i])
			prime[++len] = i;
		for(int j = 1;j <= len && i * prime[j] <= MAX;j++)
		{
			vis[i * prime[j]] = true;
			if(i % prime[j] == 0)
				break;
		}
	}
}
int main()
{
	fill_c();
	cin >> t;
	while(t--)
	{
		ans = 1;
		cin >> x;
		for(int i = 1;i <= len && prime[i] * prime[i] <= x;i++)
		{
            int cnt = 0;
			while(x % prime[i] == 0)
			{
				x /= prime[i];
				cnt++;
                if(cnt % 3 == 0)
                    ans *= prime[i];
			}
		}
        ll tmp = lower_bound(cub + 1,cub + 1000001,x) - cub;
        if(cub[tmp] == x)
            ans *= tmp;
		cout << ans << '\n';
	}
	return 0;
}
2025/7/31 10:22
加载中...