結果
| 問題 |
No.3127 Multiple of Twin Prime
|
| コンテスト | |
| ユーザー |
norioc
|
| 提出日時 | 2025-04-26 03:52:33 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,171 ms / 2,500 ms |
| コード長 | 633 bytes |
| コンパイル時間 | 384 ms |
| コンパイル使用メモリ | 82,272 KB |
| 実行使用メモリ | 181,188 KB |
| 最終ジャッジ日時 | 2025-04-26 03:52:51 |
| 合計ジャッジ時間 | 16,372 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 12 |
ソースコード
from math import isqrt
from itertools import pairwise
from bisect import bisect_right
def make_primes(n: int) -> list[int]:
ps = [2]
t = [True] * (n + 1)
for i in range(3, n+1, 2):
if t[i]:
ps.append(i)
for j in range(i+i, n+1, i):
t[j] = False
return ps
primes = make_primes(isqrt(10 ** 14))
twins = []
for a, b in pairwise(primes):
if a+2 == b:
twins.append(a * b)
def solve():
N = int(input())
p = bisect_right(twins, N)
if p == 0: return -1
return twins[p-1]
T = int(input())
for _ in range(T):
ans = solve()
print(ans)
norioc