From ec0238ccc6830b1a9e668fff63e931c7bdfd9b6e Mon Sep 17 00:00:00 2001 From: Leaced Date: Mon, 10 Apr 2017 16:31:10 +0200 Subject: [PATCH] =?UTF-8?q?Optimierung=20f=C3=BCr=20gro=C3=9Fe=20Zahlen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../befreundete Zahlen/befreundete Zahlen.cpp | 11 ++---- .../befreundete Zahlen2.cpp | 37 ------------------- 2 files changed, 3 insertions(+), 45 deletions(-) delete mode 100644 Mathe/befreundete Zahlen/befreundete Zahlen2.cpp diff --git a/Mathe/befreundete Zahlen/befreundete Zahlen.cpp b/Mathe/befreundete Zahlen/befreundete Zahlen.cpp index 246d539..c1b834d 100644 --- a/Mathe/befreundete Zahlen/befreundete Zahlen.cpp +++ b/Mathe/befreundete Zahlen/befreundete Zahlen.cpp @@ -27,14 +27,7 @@ int main() 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. - //Das Programm dazu existiert bereits unte dem Namen "befreundete Zahlen 2". - - if(amount>500000) amount = 500000; - - unsigned int number[amount]; + unsigned int *number = new unsigned int[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"; } + delete[] number; + getch(); return(0); } diff --git a/Mathe/befreundete Zahlen/befreundete Zahlen2.cpp b/Mathe/befreundete Zahlen/befreundete Zahlen2.cpp deleted file mode 100644 index 06da9bf..0000000 --- a/Mathe/befreundete Zahlen/befreundete Zahlen2.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include -#include -#include -#include - -int main() -{ - std::string input; - unsigned long long max = 1; - - std::cout << "Gib an bis zu welcher Zahl nach befreundeten Zahlen gesucht werden soll: "; - - getline(std::cin, input); - std::stringstream(input) >> max; - - if(max<284) - { - std::cout << "\nEs wurden keine befreundeten Zahlen gefunden."; - getch(); - return(0); - } - - std::cout << "\nbefreundete Zahlen sind:\n"; - - for(unsigned long long number = 284; number<=max; number++) - { - unsigned long long sum = 0, sum2 = 0; - - for(unsigned long long factor = 1; factor*2<=number; factor++) if(number%factor==0) sum += factor; - - if(sum=220) for(unsigned long long factor = 1; factor*2<=sum; factor++) if(sum%factor==0) sum2 += factor; - if(sum2==number) std::cout << sum << " und " << sum2 << "\n"; - } - - getch(); - return(0); -}