結果

問題 No.1666 累乗数
ユーザー eve__fuyuki
提出日時 2024-04-09 21:55:09
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 528 bytes
コンパイル時間 346 ms
コンパイル使用メモリ 82,300 KB
実行使用メモリ 78,180 KB
最終ジャッジ日時 2024-10-01 22:27:23
合計ジャッジ時間 22,829 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other WA * 15 TLE * 4
権限があれば一括ダウンロードができます

ソースコード

diff #

import math

t = int(input())

for _ in range(t):
	k = int(input())
	ng ,ok = 0, k * k + 10
	while ok - ng > 1:
		mid = (ok + ng) // 2
		# mid以下の累乗数の個数を求める
		cnt = [0] * 63
		for i in range(2, 63):
			cnt[i] = math.ceil(math.pow(mid, 1 / i))
			while pow(cnt[i], i) > mid:
				cnt[i] -= 1
			while pow(cnt[i] + 1, i) <= mid:
				cnt[i] += 1
			cnt[i] -= 1
		for i in range(2, 63):
			for j in range(2 * i, 63, i):
				cnt[i] -= cnt[j]
		if sum(cnt) + 1 >= k:
			ok = mid
		else:
			ng = mid
	print(ok)
0