Abundant odd numbers: Difference between revisions

→‎{{header|Wren}}: Now uses 'fmt' module.
(Added Wren)
(→‎{{header|Wren}}: Now uses 'fmt' module.)
Line 3,868:
=={{header|Wren}}==
{{trans|Go}}
{{libheader|fmt}}
<lang ecmascript>var divisors = Fn.new { |n|
<lang ecmascript>import "/fmt" for Fmt
 
<lang ecmascript>var divisors = Fn.new { |n|
var divs = [1]
var divs2 = []
Line 3,883 ⟶ 3,886:
return divs
}
 
var sum = Fn.new { |divs| divs.reduce { |acc, div| acc + div } }
 
var sumStr = Fn.new { |divs| divs.reduce("") { |acc, div| acc + "%(div) + " }[0...-3] }
 
var rset = Fn.new { |m, n|
var s = "%(n)"
var c = s.count
return (m > c) ? " " * (m - c) + s : s
}
 
var abundantOdd = Fn.new { |searchFrom, countFrom, countTo, printOne|
var count = countFrom
Line 3,905 ⟶ 3,902:
var s = sumStr.call(divs)
if (!printOne) {
System.print("%(rsetFmt.calld(2, count)). %(rsetFmt.calld(5, n)) < %(s) = %(tot)")
} else {
System.print("%(n) < %(s) = %(tot)")
Line 3,915 ⟶ 3,912:
return n
}
 
var MAX = 25
System.print("The first %(MAX) abundant odd numbers are:")
var n = abundantOdd.call(1, 0, 25, false)
 
System.print("\nThe one thousandth abundant odd number is:")
abundantOdd.call(n, 25, 1000, true)
 
System.print("\nThe first abundant odd number above one billion is:")
abundantOdd.call(1e9+1, 0, 1, true)</lang>
9,482

edits