Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. from math import*
  2. from threading import*
  3.  
  4. def input_steps():
  5. try:
  6. n=int(input("Calculer les nombres premiers de 1 a:"))
  7. if n<=2:
  8. n=3
  9. return n
  10. except:
  11. return input_steps()
  12.  
  13. def is_not_prime(a,liste):
  14. nb_div=1
  15. if (a-1)%6==0 or (a+1)%6==0:
  16. nb_div=0
  17. for nb in liste:
  18. if nb<=sqrt(a):
  19. nb_test=a
  20. while (nb_test%nb)==0:
  21. nb_div+=1
  22. nb_test=(nb_test//nb)
  23.  
  24. else:
  25. break
  26.  
  27. return nb_div
  28.  
  29. def get_numbers(fin):
  30. k=3
  31. liste=[2,3,5]
  32. while k<fin:
  33. k+=4
  34. th1=Thread(target=is_not_prime(k,liste))
  35. th2=Thread(target=is_not_prime(k+2,liste))
  36. test_k1=th1.start()
  37. test_k2=th2.start()
  38.  
  39. th1.join()
  40. th2.join()
  41. if test_k1==0:
  42. print(k)
  43. liste.append(k)
  44. if test_k2==0:
  45. print(k+2)
  46. liste.append(k+2)
  47.  
  48. return liste
  49.  
  50. limit=input_steps()
  51.  
  52. print("Nombres premiers jusqu'a {}:".format(limit))
  53. print("2\n3\n5")
  54. numbers=get_numbers(limit)
  55.  
  56. index_n=numbers.index(numbers[-1])
  57. print(">>>{} Valeurs trouvées".format(index_n+1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement