Jump to content

Factorions: Difference between revisions

Added Sidef
(+Racket)
(Added Sidef)
Line 466:
 
The factorions for base 12 are: 1 2
</pre>
 
=={{header|Sidef}}==
<lang ruby>func upper_bound(b = 10) {
var m = 1
var f = (b-1)!
while (m*f > b**(m-1)) {
m += 1
}
return (b==2 ? 2 : m-1)
}
 
func factorions(b = 10) {
 
var result = []
var digits = @(^b)
var fact = digits.map { _! }
 
for k in (1 .. upper_bound(b)) {
digits.combinations_with_repetition(k, {|*comb|
var n = comb.sum_by { fact[_] }
if (n.digits(b).sort == comb.sort) {
result << n
}
})
}
 
return result
}
 
for b in (2..12) {
var r = factorions(b)
say "Base #{'%2d' % b} factorions: #{r}"
}</lang>
{{out}}
<pre>
Base 2 factorions: [1, 2]
Base 3 factorions: [1, 2]
Base 4 factorions: [1, 2, 7]
Base 5 factorions: [1, 2, 49]
Base 6 factorions: [1, 2, 25, 26]
Base 7 factorions: [1, 2]
Base 8 factorions: [1, 2]
Base 9 factorions: [1, 2, 41282]
Base 10 factorions: [1, 2, 145, 40585]
Base 11 factorions: [1, 2, 26, 48, 40472]
Base 12 factorions: [1, 2]
</pre>
 
2,756

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.