fbpx

Problema #2842 – Triplete1 – Rezolvari PBInfo

de Mihai-Alexandru

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

S-ar putea sa iti placa