Pagini recente » Istoria paginii runda/simulare_oji_bv_11-12 | Cod sursa (job #1970121) | Cod sursa (job #2967219) | Cod sursa (job #649427) | Cod sursa (job #2606692)
def input_gen_int(fnmae):
with open(fnmae, 'rt') as fin:
for line in fin:
for val in line.split():
yield int(val)
class ErasSieve:
primes = []
n = 0
def __init__(self, nn):
self.n = nn
self.primes = [1 for _ in range(n + 1)]
self.generate()
def isprime(self, i):
return self.primes[i]
def generate(self):
self.primes[0] = 0
self.primes[1] = 0
for i in range(2, self.n + 1):
if self.primes[i] == 1:
for j in range(2 * i, self.n + 1, i):
self.primes[j] = 0
if __name__ == '__main__':
ig = input_gen_int("ciur.in")
n = next(ig)
sv = ErasSieve(n)
k = 0
for i in range(2, n + 1):
if sv.isprime(i):
k += 1
with open('ciur.out', 'wt') as fout:
fout.write('{}'.format(k))