Startseite → Forum → Knobeleien → Produkt: 1.000.000.000
Forum
Thema: Produkt: 1.000.000.000 |
---|
Jonas (Administrator, 334 Beiträge) am 03.10.2007 um 17:08 Uhr: |
Welche Zahlenpaare (x;y) erfüllen die gegebenen Bedingungen? Posten Sie Ihre Lösungsvorschläge hier! |
MrX (22 Beiträge) am 04.10.2007 um 15:36 Uhr: |
Ich tippe mal auf 512 und 1953125 |
Ausblenden Anzeige: |
|
Schnatti (2 Beiträge) am 22.03.2009 um 08:38 Uhr: |
Es ist mit Sicherheit keine riesige Arbeit, alle Teiler auszurechnen, man braucht eigentlich nur Grundwissen etwa aus der vierten Klasse und den gesunden Menschenverstand, dass eben ein Computer nicht immer alles besser und schneller kann. die 1000000000 - oder gerne auch noch ein paar Nullen mehr - besteht nur aus \"Zehnern\" - als 10 * 10 *10..., so viele Zehner wie Nuller hinter der 1 und dem entsprechend auf den kleinsten Teiler gebracht genau so viele \"Zweier\" und \"Fünfer\". Damit ich beim Multiplizieren keine Null erhalte, die sich dann weiter fortsetzt, darf ich nicht 2 mit 5 multiplizieren. Stattdessen halt die 2er auf eine Seite, 2*2*2..... und die 5er auf die andere 5*5*5.... das dauert keine Minute, das Ausrechnen von 2 hoch 9 und 5 hoch 9 mit Taschenrechner dann auch nicht länger... |
DickyArts (3 Beiträge) am 26.08.2013 um 19:06 Uhr: |
Sorry, daß ich auf diesen alten Thread antworte, aber ich habe die Seite erst heute entdeckt. Bei dieser Aufgabe bietet sich an, lediglich bis zur Quadratwurzel von 1Mrd zu suchen, denn alle Zahlen darüber können nur noch die bislang gefundenen Gegenstücke der durchprobierten Teiler sein und nach dem Kommutativgesetz haben wir somit bereits nach sqrt(1Mrd) = 31622 Durchläufen alle Ergebnisse gefunden - mithin fast 32.000x schneller, als nach der offiziellen Lösung. Ich habe das Problem mit folgendem PERL-Programm gelöst, wobei ich zugebe, daß man 1Mrd sowie dessen Wurzel als Variable definieren könnte/sollte und einige andere Dinge etwas lesbarer formulieren könnte: for ( my x = 1; x <= sqrt( 1000000000 ); x++ ) { my y = 1000000000 / x; if ( y == int(y) and not ((x . y ) =~ /0/) ) { print "x * y = 1000000000\n"; } # if } # for x Als Verständnis-Hinweis für alle Nicht-PERL-Programmierer: In PERL wird nicht zwischen Strings und numerischen Variablen unterschieden. Das mache ich mir in der 3. Zeile zu Nutze, indem ich beispielsweise 512 und 1953125 zu 5121953125 verbinde und dann per regular Expressions schaue, ob in diesem String (k)eine Null auftaucht. So kann ich mit nur einem Befehl beide Teiler gleichzeitig testen. Gruß Thomas EDIT: Wer das Programm testen möchte, muß vor jeden Variablen-Namen noch ein Dollar-Zeichen schreiben. Leider läuft dieses Forum amok, sobald es ein Dollar-Zeichen erblickt. Deshalb habe ich diese Zeichen wegoptimiert :q: |
saescha (69 Beiträge) am 03.09.2013 um 13:40 Uhr: |
Hi Thomas, Dollar Zeichen sind in diesem Forum zum kennzeichnen von [math]\\LaTeX[/math] Formeln definiert. lg, Sascha |
Die Community wurde geschlossen. Registrierungen und Logins sind nicht mehr möglich, die Beiträge stehen aber weiterhin zur Verfügung. Alle persönlichen Benutzerdaten wurden gelöscht.