Napisać program w C++ znajdujący 10 najmniejszych par liczb zaprzyjaźnionych. Liczby zaprzyjaźnione to różnych liczb naturalnych takich, że suma dzielników każdej z tych liczb równa się drugiej (nie licząc dzielników przez samą siebie) Pilne, czas do 8:0

Napisać program w C++ znajdujący 10 najmniejszych par liczb zaprzyjaźnionych. Liczby zaprzyjaźnione to różnych liczb naturalnych takich, że suma dzielników każdej z tych liczb równa się drugiej (nie licząc dzielników przez samą siebie) Pilne, czas do 8:00 rano. Punkty do negocjacji jeśli będzie trzeba :p
Odpowiedź

#include using namespace std; int sum_dziel(int x) //funkcja znajduje i sumuje dzielniki danej liczby {     int wynik=0,z=1;     if(x==1) wynik=1;     else     {         while (x!=z)         {             if(x%z==0)             {                 wynik=wynik+z;                 z++;             } else z++;         };     }     return wynik; } void porownanie() //funkcja porownuje liczby aby znalezc te zaprzyjaznione 10 razy {     int l1=1,l2,f1=0,f2=0,f3=1;     for(int i=0;i<22;i++)     {         do         {             l2=sum_dziel(l1);             if((sum_dziel(l2)==l1)&&(l2!=1)&&(l1!=l2))             {                 if(f3%2!=0)                 {                     cout<

W zalaczniku kod rozwiazania. Wynik sprawdizlem z lista takich liczb i wydaje sie poprawny. Wyszlo mi rozwiazanie zwracające 10 najmniejszych par, co do wartosci wiekszej z tych dwoch liczb. Wynik: para 1: 220 i 284 para 2: 1184 i 1210 para 3: 2620 i 2924 para 4: 5020 i 5564 para 5: 6232 i 6368 para 6: 10744 i 10856 para 7: 12285 i 14595 para 8: 17296 i 18416 para 9: 66928 i 66992 para 10: 67095 i 71145

Dodaj swoją odpowiedź