結果
問題 |
No.3127 Multiple of Twin Prime
|
ユーザー |
|
提出日時 | 2025-05-01 03:42:56 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 912 bytes |
コンパイル時間 | 834 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 1,644,836 KB |
最終ジャッジ日時 | 2025-05-01 03:43:10 |
合計ジャッジ時間 | 10,658 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | MLE * 1 |
other | -- * 12 |
ソースコード
import bisect def Sieve_of_Eratosthenes(num): number_list = [[i,True] for i in range(0,num+1)] prime_list = [] for i, res in number_list[2:]: if res == True: for j in range(i*i, num+1, i): number_list[j][1] = False if i > num**(1/2): break for num,i in number_list: if num >= 2 and i == True: prime_list.append(num) return prime_list N = 10**14 prime_list = Sieve_of_Eratosthenes(int(N**(1/2)+1)) p_L=[] for i in range(1,len(prime_list)): if prime_list[i] - prime_list[i-1] == 2: p_L.append(prime_list[i-1]*prime_list[i]) T=int(input()) for i in range(T): N=int(input()) idx = bisect.bisect_left(p_L, N) if idx == 0: print(-1) elif idx == len(p_L): print(p_L[idx-1]) else: if p_L[idx] == N: print(N) else: print(p_L[idx-1])