結果
| 問題 |
No.407 鴨等素数間隔列の数え上げ
|
| コンテスト | |
| ユーザー |
c-yan
|
| 提出日時 | 2020-11-19 00:37:26 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 177 ms / 1,000 ms |
| コード長 | 753 bytes |
| コンパイル時間 | 263 ms |
| コンパイル使用メモリ | 82,444 KB |
| 実行使用メモリ | 128,308 KB |
| 最終ジャッジ日時 | 2024-07-23 09:20:50 |
| 合計ジャッジ時間 | 3,092 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 5 |
| other | AC * 31 |
ソースコード
def enumerate_primes(n):
result = []
sieve = list(range(max(n + 1, 2)))
if n < 2:
return result
result.append(2)
for i in range(4, n + 1, 2):
sieve[i] = 2
m = int(n ** 0.5)
if m % 2 == 0:
m -= 1
for i in range(3, m + 1, 2):
if sieve[i] != i:
continue
result.append(i)
for j in range(i * i, n + 1, i * 2):
if sieve[j] == j:
sieve[j] = i
for i in range(m + 2, n + 1, 2):
if sieve[i] == i:
result.append(i)
return result
def main():
N, L = map(int, input().split())
t = L // (N - 1)
result = 0
for d in enumerate_primes(t):
result += L - d * (N - 1) + 1
print(result)
main()
c-yan