A számelméletben azokat a számpárokat, amelyekre igaz, hogy az egyik szám önmagánál kisebb osztóinak összege a másik számmal egyenlő (és fordítva), barátságos számoknak hívjuk.
Ilyen például a (220; 284) számpár.
220 önmagánál kisebb osztói: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110.
1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284
284 önmagánál kisebb osztói: 1, 2, 4, 71, 142.
1 + 2 + 4 + 71 + 142 = 220.
Röviden a hurok úgy néz ki hogy elindulunk egy számból, megnézzük hogy mennyi osztóinak összege, kaptunk egy újabb számot, annak is megnézzük, és ha előbb utóbb visszajutunk a kiindulási számhoz, akkor hurkot találtunk.
Forrás a tovább után---->>
#include<iostream>
using namespace std;
int main()
{
long long int szam,i,osztok,kovszam;
cout<<"Adj meg egy számot hogy melyik osztóinak összegét akarod: ";
cin>>szam;
kovszam=szam;
for(;;)
{
osztok=0;
szam=kovszam;
for(i=1;i<szam;i++)
if((szam%i)==0) osztok=osztok+i;
kovszam=osztok;
cout<<"A megadott szám: "<<szam<<" osztóinak összege:"<<kovszam<<endl;
}
return 0;
}
Kimenete: 12496-al indítva.....
A megadott szám: 12496 osztóinak összege:14288
A megadott szám: 14288 osztóinak összege:15472
A megadott szám: 15472 osztóinak összege:14536
A megadott szám: 14536 osztóinak összege:14264
A megadott szám: 14264 osztóinak összege:12496