Python - prvočísla: Porovnání verzí
Bez shrnutí editace |
mBez shrnutí editace |
||
| Řádek 17: | Řádek 17: | ||
n = i*k | n = i*k | ||
for i in range( | for i in range(1, N): | ||
if integers[i]: | if integers[i]: | ||
print i, | print i, | ||
print | print | ||
Verze z 3. 12. 2005, 11:15
Eratosthenovo síto.
Vytvoříme seznam přirozených čísel menších než N. První prvočíslo je 2, označíme tedy v našem sezmanu všechny násobky čísla 2 (která z definice nemohou být prvočísly). Přejdeme na další neoznačené číslo v seznamu, tj. na číslo 3 a celý proces opakujeme, dokud není zpracován celý seznam.
#!/usr/bin/python
N = 100
integers = [1]*N
for i in range(2, N):
if integers[i]:
k = 2
n = i*k
while n < N:
integers[n] = 0
k = k + 1
n = i*k
for i in range(1, N):
if integers[i]:
print i,
print