Kod: Zaznacz cały
//program szuka liczb zaprzyjaźnionych w okreslonym przedziale
#include <iostream>
#include<cstdlib>
using namespace std;
int main () {
int licz1, podz1, podz2, i, k, maks;
cin >> maks; // przedzial
i = 1; //kolejne podzielniki liczby1
k = 1; //kolejne podzielniki liczby2
podz1 = 0; //suma podzielnikow liczby1
podz2 = 0; //suma podzielnikow liczby2
for(licz1 = 2; licz1 < maks; licz1++) {
while(i <= licz1/2) { //sprawdzamy podzielniki tylko do polowy liczby
if(licz1 % i == 0) {
podz1 = podz1 + i; // sumujemy podzielniki
}
i = i + 1;
}
//sprawdzamy czy nowa liczba jest liczba zaprzyjazniona
while(k <= podz1/2) {
if(podz1 % k == 0) {
podz2 = podz2 + k; // sumujemy podzielniki
}
k = k + 1;
}
if(podz2 == licz1 && podz1 < maks) { //jesli suma podzielnikow nowej liczby rowna sie
cout << licz1 << " " << podz1 << endl;
//pierwszej liczbie to dwie liczby sa zaprz
}
}
return 0;
}