walas_

liczby blizniacze i polpierwsze

May 25th, 2026
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. def sito(n):
  2. liczby = [True] * (n+1)
  3. pierwsze = []
  4.  
  5. if n <= 1:
  6. # wynik: pusty zbiór liczb pierwszych
  7. return []
  8.  
  9. liczby[0] = False
  10. liczby[1] = False
  11.  
  12. for i in range(2, len(liczby)):
  13. if liczby[i]:
  14. pierwsze.append(i)
  15. for j in range(i*i, len(liczby), i):
  16. liczby[j] = False
  17.  
  18. return pierwsze
  19.  
  20. #print(sito(30))
  21.  
  22. # 2 3 5 7 9 11
  23. # Liczby bliźniacze (3, 5) ; (5, 7) ; (11, 13)
  24.  
  25. def zad_1(n):
  26. lista = sito(n)
  27. pary = []
  28.  
  29. for i in range(len(lista)-1):
  30. if lista[i+1] - lista[i] == 2:
  31. pary.append((lista[i], lista[i+1]))
  32.  
  33. return pary
  34.  
  35. print(zad_1(31))
  36.  
  37.  
  38.  
  39. # Czy liczba jest półpierwsza 14 = 2 * 7
  40.  
  41. # n%dzielnik == 0 ; n / dzielnik = cos
  42.  
  43. def zad_2(n):
  44. lista = sito(n)
  45.  
  46. for pierwsza in lista:
  47. if n%pierwsza == 0 and (n // pierwsza) in lista:
  48. return True
  49.  
  50. return False
  51.  
  52. for i in range(1, 31):
  53. if zad_2(i):
  54. print(i)
Advertisement
Add Comment
Please, Sign In to add comment