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