Cod sursa(job #2449247)
Utilizator | Data | 19 august 2019 00:17:21 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | py | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#!/usr/bin/env python3
import sys
sys.stdout = open('ciur.out', 'w')
with open('ciur.in', 'r') as f:
n = int(f.readline())
num = (n - 1) // 2 + 1
p = [True] * ((n + 1) // 2)
for i in range(3, int(n ** 0.5) + 1, 2):
if p[i // 2]:
for j in range(i * i, n + 1, 2 * i):
if p[j // 2]:
num -= 1
p[j // 2] = False
print(num)