結果
問題 | No.458 異なる素数の和 |
ユーザー |
|
提出日時 | 2021-04-17 15:22:41 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 626 bytes |
コンパイル時間 | 367 ms |
コンパイル使用メモリ | 81,680 KB |
実行使用メモリ | 76,416 KB |
最終ジャッジ日時 | 2024-07-03 23:00:19 |
合計ジャッジ時間 | 5,731 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 RE * 1 |
ソースコード
N=int(input()) def eratosthenes(n): if n==2: return [2] prime = [2] 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]#リスト内包表記で消してる prime=eratosthenes(N) dp=[-1]*(N+1) dp[0]=0 for i in prime: for j in reversed(range(N+1)): if dp[j]==-1: continue if j+i<=N: dp[j+i]=max(dp[j+i],dp[j]+1) print(dp[-1] if dp[-1]!=-1 else -1)