結果

問題 No.3127 Multiple of Twin Prime
ユーザー ルク
提出日時 2025-01-19 23:45:31
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 895 ms / 2,500 ms
コード長 744 bytes
コンパイル時間 267 ms
コンパイル使用メモリ 82,480 KB
実行使用メモリ 242,048 KB
最終ジャッジ日時 2025-01-20 14:20:12
合計ジャッジ時間 11,397 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 11
権限があれば一括ダウンロードができます

ソースコード

diff #

import bisect


def sieve_of_eratosthenes(x):
    nums = [i for i in range(x+1)]

    root = int(pow(x, 0.5))
    for i in range(2, root + 1):
        if nums[i] != 0:
            for j in range(i, x+1):
                if i*j >= x+1:
                    break
                nums[i*j] = 0

    primes = sorted(list(set(nums)))[2:]

    return primes


t = int(input())
ps = sieve_of_eratosthenes(int(1e7))
twin_primes = []
for i in range(len(ps)-1):
    if ps[i+1] - ps[i] == 2:
        twin_primes.append((ps[i], ps[i+1]))
twins = []
for i in twin_primes:
    twins.append(i[0]*i[1])
for i in range(t):
    n = int(input())
    if n <= 14:
        print(-1)
        continue

    idx = bisect.bisect_left(twins, n+1)
    print(twins[idx-1])
0