Ich muss mich mit dieser Aufgabe befassen:Rubin. Wie man meine Schleife verbessert, die nach dem kleinsten Vielfachen der Zahlenbereiche sucht
"2520 ist die kleinste Zahl, die durch jede der Zahlen von 1 bis 10 ohne jede geteilt werden kann Rest. Was ist die kleinste positive Zahl, die gleichmäßig durch alle Zahlen von 1 bis 20 teilbar ist? "
Meine Lösung sieht wie folgt aus:
all_numbers = []
1.upto(2600) do |j|
1.upto(10) do |i|
if j % i == 0
all_numbers << j
end
end
end
result = all_numbers.select{|element| all_numbers.count(element) > 9 }
p result[0]
Das gibt mir die richtige Antwort, aber wenn ich für eine Reihe von 0..20
überprüfen möchten und Code wie folgt ändern:
all_numbers = []
1.upto(100000) do |j|
1.upto(20) do |i|
if j % i == 0
all_numbers << j
end
end
end
result = all_numbers.select{|element| all_numbers.count(element) > 19 }
p result[0]
es dauert zu viel Zeit, um eine Antwort zu erhalten (eigentlich habe ich nicht einmal so lange gewartet ... also hab noch nicht die richtige Antwort ..).
Irgendwelche Ideen? Danke vielmals!
Oder, um es anders auszudrücken: Das ist überhaupt kein Programmierproblem, es ist ein mathematisches Problem. Es klingt * wie ein Problem von Project Euler. Ich habe keine Ahnung, warum das so oft zum Erlernen der Programmierung empfohlen wird. So ziemlich alle Project Euler Probleme sind mathematische Probleme und haben überhaupt nichts mit Programmierung zu tun. –
hm .. Danke für diese Einsicht. Es war wirklich vom Projekt Euler –