結果

問題 No.3127 Multiple of Twin Prime
ユーザー urunea
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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])
0