Răspuns :
Răspuns:
long long sumadiv(int x)
{
long long sd=1, d;
for (d=2; d*d<x; ++d)
{
if (x%d==0)
{ sd+=d; sd+=x/d; }
}
if (d*d==x) sd+=d;
return sd;
}
Explicație:
Îţi propun o metodă mai efectivă pentru a determina suma divizorilor.
Întradevăr indicele lui for, (adică numărul de repetări) nu poate fi foarte foarte mare.. Poţi experimenta să vezi ...
Enunţul spune că cauţi perechi prietene cu a, deci trebuie să-l citeşti pe a, să+i afli suma divizorilor şi cu un singur for să cauţi numerele b.
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!