Mai intai trebuie sa te autentifici.
Cod sursa(job #3242574)
Utilizator | Data | 12 septembrie 2024 17:03:08 | |
---|---|---|---|
Problema | Algoritmul lui Euclid | Scor | 0 |
Compilator | py | Status | done |
Runda | Arhiva educationala | Marime | 0.9 kb |
import string
from dataclasses import dataclass
from bitarray import bitarray
@dataclass(frozen=True)
class Constants:
INPUT: string = "/Users/lucadani/PycharmProjects/InfoArenaPython/Ciurul_lui_Eratostenes/ciur.in"
OUTPUT: string = "/Users/lucadani/PycharmProjects/InfoArenaPython/Ciurul_lui_Eratostenes/ciur.out"
def count_primes_until_fixed_value(value):
sieve = bitarray(value + 1)
sieve.setall(True)
sieve[0], sieve[1] = False, False
for i in range(2, int(value ** 0.5) + 1):
if sieve[i]:
for j in range(i * i, value + 1, i):
sieve[j] = False
cnt = 0
for elem in sieve:
if elem:
cnt += 1
return cnt
if __name__ == "__main__":
with open(Constants.INPUT, "r") as file:
n = int(file.readline().strip())
with open(Constants.OUTPUT, "w") as file:
file.write(str(count_primes_until_fixed_value(n)))