Cod sursa(job #2533155)

Utilizator TeodorCotetCotet Teodor TeodorCotet Data 28 ianuarie 2020 19:55:34
Problema Ciurul lui Eratosthenes Scor 30
Compilator py Status done
Runda Arhiva educationala Marime 0.6 kb

def read_gen(fname):
    with open(fname, 'rt') as fin:
        for line in fin:
            for val in line.split():
                yield int(val)

def solve(n):
    v = [False for _ in range(n + 1)]
    count_primes = 0
    k = 2
    while k <= n:
        if v[k] is False:
            count_primes += 1
            for i in range(k + k, n + 1, k):
                v[i] = True
        k += 1
    return count_primes

if __name__ == "__main__":
    it = read_gen('ciur.in')
    n = next(it)
    count_primes = solve(n)
    with open('ciur.out', 'wt') as fout:
        fout.write('{}\n'.format(count_primes))