Guest User

Prvocisla

a guest
Sep 12th, 2012
230
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. from math import sqrt # pracujeme s odmocninami
  2.  
  3. # funkce zjistujici, zda je cislo prvocislem
  4. def jePrv(p):
  5.     flag=True # na zacatku je kazde cislo prvocislo
  6.  
  7.     if p in [0,1]: # pro krajni pripady
  8.         flag = False # 0 a 1 nejsou prvocisla
  9.     if p not in [0,1,2]: # vyloucime krajni pripady (pro dva zustane flag True bez testovani, coz je spravne)
  10.         for x in range(int(sqrt(p)+1))[2:]: # testovat staci pouze do druhe odmocniny (dukaz napr. na http://bit.ly/QjTxJX)
  11.             if int(p%x) == 0: # pokud je zbytek po deleni 0, cislo je prvocislem
  12.                 flag=False # zjisteno, ze cislo neni prvocislo
  13.                 break; # v tomto pripade neni nutno pokracovat
  14.     return flag # pokud jsme nenalezli delitelnost, je flag stale True, jinak False
  15.  
  16. n=input("Kolik prvocisel chcete vypsat: ") # zjisteni vstupu od uzivatele
  17. prv = [] # prazdny seznam pro prvocisla
  18.  
  19. poc = 0 # 2 je prvni prvocislo, 0 a 1 jsou specialni pripady
  20. while len(prv) != n: # iterujeme, dokud nedostaneme pozadovany pocet prvocisel
  21.     if jePrv(poc):
  22.         prv.append(poc) # pokud je prvocislem, pridame jej do seznamu
  23.     poc += 1 # pokracujeme na dalsi cislo
  24.    
  25. print prv # vytiskneme seznam n prvocisel
RAW Paste Data