Eine abundant number ist eine Zahl, für die die Summe ihrer eigentlichen Teiler größer ist als die Zahl selbst. A Project Euler question sagt: "Finden Sie die Summe aller positiven ganzen Zahlen, die nicht als die Summe von zwei reichlich vorhandenen Zahlen geschrieben werden können." Ich sollte erhalten:Ruby-Euler-Projekt Nicht reichlich vorhandene Summen 23 Code
12, 18, 20, 24, etc.
Der Code ist:
def check_abundant(x)
total(x) > x
end
def total (x)
sum = 1
(2..Math.sqrt(x)).each do |i|
sum = sum + x + x/i if x%i == 0 && i != Math.sqrt(x)
end
sum
end
def non_abundant_sums
abundant_arr = []
s = 0
(12..28123).each do |x|
if check_abundant(x)
abundant_arr << x
end
(1..28123).each do |x|
s = s + x unless abundant_arr.include? (total(x) - x)
end
s
end
puts non_abundant_sums
Wenn ich drucken abundant_arr
, bekomme ich
12, 14, 15
Sie müssen mehr tun, als einen Haufen Code zu werfen und zu sagen, welche Antwort Sie bekommen. Was ist das Problem**? – tadman
Ich schlage vor, dass Sie bearbeiten, um Ihren vorletzten Absatz ganz nach oben zu verschieben. Bitte definieren Sie auch "reichlich Anzahl". –
@CarySwoveland Das ist ein Teil davon. Der andere Teil erklärt genauer, was dies erreichen soll. Was ist "reichlich?" – tadman