Factorions: Difference between revisions

Content added Content deleted
(→‎{{header|Perl}}: added a more efficient version)
m (→‎{{header|Sidef}}: minor code simplifications)
Line 526:
 
=={{header|Sidef}}==
<lang ruby>func upper_boundmax_power(b = 10) {
var m = 1
var f = (b-1)!
while (m*f >= b**(m-1)) {
m += 1
}
return (b==2 ? 2 : m-1)
}
 
Line 538:
 
var result = []
var digits = @(^b)
var fact = digits.map { _! }
 
for k in (1 .. upper_boundmax_power(b)) {
digits.combinations_with_repetition(k, {|*comb|
var n = comb.sum_by { fact[_] }
if (n.digits(b).sort == comb.sort) {
result << n
}