Informatică, întrebare adresată de UserIn, 8 ani în urmă

[C++]

Sa se compuna un program care va determina cel mai mare divizor propriu al numarului natural dat n. Remarca: Se numesc proprii divizorii lui n care sunt diferiti de 1 si n.

Răspunsuri la întrebare

Răspuns de rossetta
4
Bună,

Problema se poate rezolva încercând potențialii divizori ai lui n începând cu n - 1, descrescător. In momentul in care o sa iasa din while, d o sa fie cel mai mare divizor al lui n. Evident daca numărul este prim, nu exista divizor propriu si dupa ieșirea din while, d o sa fie 1.

int d = n - 1;
while(n % d ! = 0)
d--;
if (d ==1)
cout <<"Numarul este prim si nu are divizori proprii";
else
cout << d;
O varianta optimizata presupune identificarea divizorului propriu minim si afisarea perechii acestuia. Daca vrei mai multe detalii, anunță-mă.
Alte întrebări interesante