diff --git a/befreundete Zahlen.cpp b/befreundete Zahlen.cpp new file mode 100644 index 0000000..8f78c58 --- /dev/null +++ b/befreundete Zahlen.cpp @@ -0,0 +1,49 @@ +#include +#include +#include +#include + +//Zwei verschiedene natürliche Zahlen, +//von denen wechselseitig jeweils eine Zahl gleich der Summe der echten Teiler der anderen Zahl ist, +//bilden ein Paar befreundeter Zahlen. + +int main() +{ + std::string input; + unsigned int amount; + + std::cout << "Gib an bis zu welcher Zahl nach befreundeten Zahlen gesucht werden soll: "; + getline(std::cin, input); + std::stringstream(input) >> amount; + + if(amount<284) + { + std::cout << "\nEs wurden keine befreundeten Zahlen gefunden."; + getch(); + return(0); + } + + std::cout << "\nBefreundete Zahlen sind:\n"; + + amount -= 219; + + //Wenn amount oberhalb von 500000 ist, würde das Programm beim Erstellen des Arrays abstürzen. + //Dies lässt sich lösen indem man kein Array anlegt, + //sondern die Teilersumme jeder Teilersumme von Zahlen ab 220 darauf überprüft ob sie mit der jeweiligen Zahl identisch sind + + if(amount>500000) amount = 500000; + + unsigned int number[amount]; + + for(unsigned long long idx = 0; idx=220 && number[number[idx]-220]==idx+220) std::cout << number[idx] << " und " << number[number[idx]-220] << "\n"; + } + + getch(); + return(0); +}