373
Cerința
Se consideră subprogramul triplete, cu un singur parametru, n, prin care primeşte o valoare naturală din intervalul [2,104]. 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';
}
}
}
}
Comentarii