Cerința
Se consideră subprogramul triplete
, cu un singur parametru, n
, prin care primeşte o valoare naturală din intervalul [2,10
4
]
. 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.
Exemplu
Dacă n=8
, se afișează pe ecran, nu neapărat în această ordine:
(0,1,8) (0,2,4) (1,2,3)
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.
void triplete(int n) { for(int d = 1 ; d * d <= n ; ++d) { if(n % d == 0) { int y = d; for(int x = 0 ; x < d ; ++x) { int z = n / y - x; if(x * y + y * z == n && z > y) cout << '(' << x << ',' << y << ',' << z << ')' << '\n'; } } } }