2842 - Triplete 1

From Bitnami MediaWiki

Cerința[edit | edit source]

Se consideră subprogramul triplete, cu un singur parametru, n, prin care primeşte o valoare naturală din intervalul [2,10000]. Subprogramul afișează pe ecran toate tripletele de numere naturale (x,y,z) cu proprietatea că x<y<z și x·y+y·z=n. Fiecare triplet se afișează pe câte o linie a ecranului, iar numerele din fiecare triplet sunt separate prin câte o virgulă și încadrate între paranteze rotunde.

Scrieți definiţia completă a subprogramului.

Important:

Soluția propusă va conține definiția subprogramului cerut. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.

Exemplul 1[edit | edit source]

Input:

n=8

Output:

(0,1,8)

(0,2,4)

(1,2,3)

Exemplul 2[edit | edit source]

Input:

n=1

Output:

Nu sunt indeplinite conditiile

Rezolvare[edit | edit source]

<syntaxhighlight lang="python3" line="1"> def is_valid_interval(n):

   """
   Verifică dacă n se află în intervalul [2, 10000].
   :param n: Valoarea naturală de verificat.
   :return: True dacă n este în interval, False în caz contrar.
   """
   return 2 <= n <= 10000


def triplete(n):

   """
   Afișează toate tripletele de numere naturale (x, y, z) cu proprietatea că x < y < z și x * y + y * z = n.
   :param n: Valoarea naturală din intervalul [2, 10000].
   """
   # Verificăm dacă n se află în intervalul specificat
   if is_valid_interval(n):
       # Iterăm prin posibilele valori pentru x, y, z
       for x in range(0, n):
           for y in range(x + 1, n):
               for z in range(y + 1, n+1):
               # Verificăm condiția x < y < z
                   if x < y < z and x * y + y * z == n:
                   # Afișăm tripletul pe ecran
                       print(f'({x},{y},{z})')
   else:
       print("Nu sunt indeplinite conditiile")
  1. Exemplu de utilizare:
  2. Pentru n = 8, subprogramul va afișa toate tripletele care satisfac condițiile date.

triplete(int(input()))

</syntaxhighlight>