👤

PYTHON 9. Napisz program który wypisze wszystkie liczby pierwsze, które mozna złozyc z cyfr 1; 4; 7; 8. Przykładowo z

liczb 2; 3; 5 mozna złozyc tylko jedna liczbe pierwsza: 523. Do wykonania tego zadania nalezy uzyc funkcje

permutations z modułu itertools, oraz funkcje z zadania 3.
def czy_pierwsza(n):
if n == 2:
return True
if n % 2 == 0 or n <= 1:
return False

pierw = int(n**0.5) + 1
for dzielnik in range(3, pierw, 2):
if n % dzielnik == 0:
return False
return True


Odpowiedź :

from itertools import permutations

def czy_pierwsza(n):

   if n == 2:

       return True

   if n % 2 == 0 or n <= 1:

       return False

   pierw = int(n**0.5) + 1

   for dzielnik in range(3, pierw, 2):

       if n % dzielnik == 0:

           return True

perm = permutations([1, 4, 7, 8])

for i in list(perm):

   k=1000*i[0]+100*i[1]+10*i[2]+i[3]

   if czy_pierwsza(k):

       print(k)