From c93cdbe24424544c8f17a47e3ca28adedbf909d3 Mon Sep 17 00:00:00 2001 From: Leaced Date: Sun, 2 Apr 2017 16:34:45 +0200 Subject: [PATCH] =?UTF-8?q?Datei=20wurde=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- befreundete Zahlen.cpp | 49 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 befreundete Zahlen.cpp 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); +}