Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Da sa lepsie ? Overovac, generator prvocisel. Python 3.

Pre poriadok. Toto je povodny vytvor s casom 40 s, pri inpute 999999.
http://dpaste.com/05QDZEX

@ Wikan:
Upravil som to podla tvojej rady nasledovne:
http://dpaste.com/0946RQM
Ale cas sa vysplhal uplne inde. Po vyse 2 minutach som to zrusil.

@ pme:
Mam takyto CPU: 2 jadrovy: Intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz
Ale aj mne sa zda, ze to trva akosi dlho.

@ MM..:
Na stringy musim previest koncovu cislicu cisla, lebo int sa neda indexovat ani iterovat, neni subscriptable. To iste plati pri sucte cifier cisla.

Inak sa koniec casomeracu neda umiestnit, aby som sa vyhol list.append().

"Ked jedno delenie num % numb trva cas X, a vies s nim priamo overit ze ci to je prime, tak naco tam strkas pred to zbytocnu operaciu numb % 2, takto ti to trva cas 2*X t.j. 2*dlhsie. Ked chces preskakovat parne cisla tak sa to da robit rovno v cykle ze sa robi cislo+2"
- Upravil som povodny vytvor a teda toto:

            for numb in range(int(num ** 0.5) + 1):  # square root brute force check
                if numb < 7:
                    continue
                elif numb % 2 == 0:             # evens excluded
                    continue  
                elif num % numb == 0:           # not prime
                    break                    
            else:
                list_of_primes.append(num)
som nahradil tymto:
            for numb in range(7, int(num ** 0.5) + 1):  # square root brute force check
                if num % (numb + 2) == 0:               # not prime, evens excluded
                    break                    
            else:
                list_of_primes.append(num)
a usetrilo sa 5 sekund :)

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny