結果
問題 |
No.1666 累乗数
|
ユーザー |
|
提出日時 | 2021-09-14 08:19:54 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,960 ms / 2,000 ms |
コード長 | 657 bytes |
コンパイル時間 | 141 ms |
コンパイル使用メモリ | 82,512 KB |
実行使用メモリ | 78,456 KB |
最終ジャッジ日時 | 2024-06-26 20:46:19 |
合計ジャッジ時間 | 31,749 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 19 |
ソースコード
import math def cnt_i(x,i): y = math.floor(pow(x,1/i)) for j in range(y+2,y-3,-1): if j**i <= x: return j-1 def f(x,k): ju = 0 cnt = [0 for _ in range(61)] for i in range(60,1,-1): c = cnt_i(x,i) for j in range(2*i,61,i): c -= cnt[j] cnt[i] = c ju += c if ju >= k-1: return True else: return False def solve(): k = int(input()) ng = 0 ok = 10**18+1 while ok-ng > 1: mid = (ok+ng)//2 if f(mid,k): ok = mid else: ng = mid print(ok) t = int(input()) for _ in range(t): solve()