結果
| 問題 |
No.458 異なる素数の和
|
| コンテスト | |
| ユーザー |
ntuda
|
| 提出日時 | 2024-01-02 17:50:13 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,249 ms / 2,000 ms |
| コード長 | 633 bytes |
| コンパイル時間 | 235 ms |
| コンパイル使用メモリ | 82,340 KB |
| 実行使用メモリ | 152,652 KB |
| 最終ジャッジ日時 | 2024-09-27 17:50:07 |
| 合計ジャッジ時間 | 9,337 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 28 |
ソースコード
def seachPrimeNum(N):
max = int(N ** 0.5)
seachList = [i for i in range(2, N + 1)]
primeNum = []
while seachList[0] <= max:
primeNum.append(seachList[0])
tmp = seachList[0]
seachList = [i for i in seachList if i % tmp != 0]
primeNum.extend(seachList)
return primeNum
N = int(input())
if N == 1:
print(-1)
exit()
PL = seachPrimeNum(N)
X = [0] * (N + 1)
Q = {0}
for p in PL:
for q in sorted(list(Q),reverse = True):
if p + q > N:
continue
X[p + q] = max(X[p + q], X[q] + 1)
Q.add(p + q)
if X[N] > 0:
print(X[N])
else:
print(-1)
ntuda