2.Construiţi un program care, citește un număr natural n, par (n>2) din fișierul ”date.txt” și afișează în fișierul ”date.out”, toate modurile de a descompune numărul citit, în sumă de două numere prime, folosind subprogramul de mai sus. (1p)
Exemplu:
pentru n=24, în fișier se vor afișa perechile sub forma:
5+19
7+17
11+13
Răspunsuri la întrebare
Răspuns:
Explicație:
def este_prim(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def descompunere(n):
if n < 4:
return
for i in range(2, n):
if este_prim(i) and este_prim(n - i):
print(i, " + ", n - i)
# citire din fisier
with open("date.txt", "r") as f:
n = int(f.read())
# verificare daca n este par si mai mare ca 2
if n % 2 == 0 and n > 2:
# scriere in fisier
with open("date.out", "w") as f:
f.write("Modurile de a descompune numarul " + str(n) + " in suma de doua numere prime sunt:")
f.write("\n")
descompunere(n)
else:
print("Numarul introdus nu indeplineste conditiile cerute (par si mai mare ca 2)")
Acest program citeste un numar natural n (par si mai mare ca 2) din fisierul "date.txt" si apoi apeleaza functia "descompunere" care descompune numarul citit in suma de doua numere prime si afiseaza rezultatul in fisierul "date.out".