結果

問題 No.3127 Multiple of Twin Prime
ユーザー 回転
提出日時 2025-04-25 21:35:56
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 959 ms / 2,500 ms
コード長 780 bytes
コンパイル時間 158 ms
コンパイル使用メモリ 82,152 KB
実行使用メモリ 247,936 KB
最終ジャッジ日時 2025-04-25 21:36:54
合計ジャッジ時間 13,182 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 12
権限があれば一括ダウンロードができます

ソースコード

diff #

def sieve_of_eratosthenes(n):
    # 1からnまでのリストを作成
    primes = [True] * (n + 1)
    p = 2
    while (p * p <= n):
        if primes[p]:
            # pの倍数を除去
            for i in range(p * p, n + 1, p):
                primes[i] = False
        p += 1
    # 残った数をリストに追加
    return [p for p in range(2, n + 1) if primes[p]]
p = sieve_of_eratosthenes(10**7+10)
p_set = set(p)
a = []
for i in p:
    if(i+2 in p_set):a.append(i)

T = int(input())
for _ in range(T):
    N = int(input())
    if(N < 15):
        print(-1)
        continue

    ok,ng = 0,len(a)
    while(ng - ok > 1):
        mid = (ok+ng)//2
        if(a[mid]*(a[mid]+2) <= N):
            ok = mid
        else:
            ng = mid
    print(a[ok]*(a[ok]+2))
0