Diskuze: prvocisla

Člen

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
update:
vylucil som parne cisla ...
cislo = 100000
prvocisla = []
for i in range(1, cislo + 1, 2):
if ((2 ** i) - 2) % i == 0:
prvocisla.append(i)
Musis zacit uvazovat logicteji
Rikas, ze vyloucis suda.
range(1, cislo + 1, 2)
Ano, tohle vylouci suda. Ale, je nejaky duvod, proc tam takovou podminku vubec
davat? Nebylo by jednodussi
n = i * 2 + 1
A nebylo by jednodussi misto nasobeni dvojkou pouzit bitovou rotaci?
n = (i >> 1) + 1
A nebylo by lepsi misto range pouzit normalni cyklus, jako while?
# https://www.tutorialspoint.com/python/python_while_loop.htm
#!/usr/bin/python
count = 0
while (count < 9):
print 'The count is:', count
count = count + 1
print "Good bye!"
Co dela range? Vytvori array, ktera obsahuje cisla od-do. Proc vytvaret
array? Mozna, ze python uz ma takovou array predpripravenou a jen na ni
presunuje ukazatel, nezkoumal jsem vnitrni funkcionalitu.
Jenze pozor. Netlacit do while funkce, pokud tam nemusi byt. Stava se, ze nekdo
tam prida treba i<strlen(str). Ono to funguje, ale pokazde znovu a znovu
pocita delku retezce. Coz je zbytecne, pokud se celou smycku nemeni Zbytecna brzda navic. To ale v
tomhle pripade nehrozi.
Hledání prvočísel je obecně pomalá záležitost, existují ale
rychlejší postupy.
třeba https://cs.wikipedia.org/…vo_s%C3%ADto
Peter Mlich: nie uplne rozumiem ...
Bitovu rotaciu ani neviem ci python pozna, nasobenie 2kou tam myslim nemam, 2 **
i je umocnenie 2 na i-tu.
Kazdopadne skusim inu metodu, napr. to eratosove sito.
Ok. Informatiku nestuduji. Jen jsem chtel rici, je liche cislo dostanu i bez slozitych mat. operaci, jako
n = (i >> 1) + 1 # = i * 2 + 1 pro i=0,1,2...(max<<1) => 1, 3, 5, ...
Zobrazeno 7 zpráv z 7.