結果
| 問題 |
No.1058 素敵な数
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-07-15 12:57:15 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 76 ms / 2,000 ms |
| コード長 | 851 bytes |
| コンパイル時間 | 325 ms |
| コンパイル使用メモリ | 82,348 KB |
| 実行使用メモリ | 80,492 KB |
| 最終ジャッジ日時 | 2024-11-21 16:30:47 |
| 合計ジャッジ時間 | 1,512 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 9 |
ソースコード
import sys
from bisect import bisect_left
sys.setrecursionlimit(10 ** 7)
rl = sys.stdin.readline
def eratosthenes(n):
prime = [2]
if n == 2:
return prime
limit = int(n ** 0.5)
data = [i + 1 for i in range(2, n, 2)]
while True:
p = data[0]
if limit <= p:
return prime + data
prime.append(p)
data = [e for e in data if e % p != 0]
def solve():
N = int(rl())
if N == 1:
print(1)
return
prime_nums = eratosthenes(10 ** 5 + 1000)
prime_nums.sort()
idx = bisect_left(prime_nums, 10 ** 5)
p = prime_nums[idx:idx + (N + 1)]
nice_nums = []
for i, pi in enumerate(p[:-1]):
for pj in p[i:]:
nice_nums.append(pi * pj)
nice_nums.sort()
print(nice_nums[N - 2])
if __name__ == '__main__':
solve()