結果
| 問題 |
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])