Zapytano Pitagorasa: Co to jest przyjaciel? - odpowiedział: Przyjaciel to drugi ja; przyjaźń, to stosunek liczb 220 i 284.
Przedstawiam krótki program napisany w C++ pozwalający nam znaleźć liczby zaprzyjaźnione w podanym przez z nas zakresie.
W ramach wyjaśnienia: Liczby zaprzyjaźnione to taka para liczb naturalnych, że suma dzielników każdej z tych liczb jest równa drugiej.
Przykład:
- 220 = 1 + 2 + 4 + 71 + 142 (dzielniki 284)
- 284 = 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 (dzielniki 220)
#include <cstdlib>
#include <iostream>
using namespace std;
int rozloz(int suma)
{
int dodane=0;
for(int i=1; i<suma; i++ )
{
if(suma%i==0)
{
dodane=dodane+i;
}
}
return dodane;
}
int main(int argc, char *argv[])
{
int poczatek_zakresu;
int koniec_zakresu;
int i;
int suma;
int suma2;
cout << "Podaj zakres poczatkowy:";
cin >> poczatek_zakresu;
cout << endl << "Podaj zakres końcowy:";
cin >> koniec_zakresu;
for(i=poczatek_zakresu;i<koniec_zakresu;i++)
{
suma=rozloz(i);
if(suma < koniec_zakresu )
{
suma2=rozloz(suma);
}
if(i==suma2&&suma!=suma2)
{
i=suma;
cout << "Dwie liczby blizniacze to:" << suma2<<" i " << suma << endl;
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
Program napisany w C++ znajdujący liczby zaprzyjaźnione. Skompilowany przy pomocy programu DEV C++. Program można udoskonalić dodając opcję zapisywania wszystkich odnalezionych par liczb, aby nie wyświetlały się one kolejny raz. Jest to pominięte w celu poprawienia czytelności kodu.
Kilka przykładów liczb zaprzyjaźnionych:
- 220 i 284
- 1184 i 1210
- 2620 i 2924
- 5020 i 5564
- 6232 i 6368
- 10744 i 10856
- 12285 i 14595
- 17296 i 18416
- 63020 i 76084
- 66928 i 66992
- 67095 i 71145
- 69615 i 87633
- 79750 i 88730
- 100485 i 124155
- 122265 i 139815
- 122368 i 123152
- 124155 i 100485
- 1222265 i 139815
- 141664 i 153176
- 168730 i 142310
- 153176 i 168730
- 142310 i 168730
- 171856 i 176336
- 180848 i 176272
- 185368 i 203432
- 280540 i 365084
- 389924 i 308620
- 319550 i 430402
- 437456 i 455344
- 469028 i 486178
- 503056 i 514736
- 522405 i 525915
- 600392 i 669688
- 686072 i 609928
- 624184 i 691256

