結果
| 問題 |
No.144 エラトステネスのざる
|
| ユーザー |
|
| 提出日時 | 2020-06-22 21:49:29 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 648 bytes |
| コンパイル時間 | 85 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 177,520 KB |
| 最終ジャッジ日時 | 2024-07-03 18:54:00 |
| 合計ジャッジ時間 | 4,186 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 WA * 2 |
| other | AC * 3 WA * 7 TLE * 1 -- * 6 |
ソースコード
n, p = map(float, input().split())
n = int(n)
primes = set(range(2, n + 1))
A = set(range(2, n + 1))
def prf(m):
pf = {}
for i in range(2, int(m ** 0.5) + 1):
while not m % i:
pf[i] = pf.get(i, 0) + 1
m //= i
if m > 1:
pf[m] = 1
return pf
for i in range(2, int(n ** 0.5 + 1)):
if i not in primes:
i += 1
else:
ran = range(i * 2, n + 1, i)
primes.difference_update(ran)
pn = len(list(primes))
B = list(A.difference(primes))
res = pn
for b in B:
tmp = prf(b)
e = [max(0, i - 2) for i in tmp.values()]
res += p ** (len(tmp) + sum(e))
print(res)