Kaprekar numbers: Difference between revisions
Content added Content deleted
(Added Erlang version) |
m (→{{header|Sidef}}: code simplifications) |
||
Line 4,363: | Line 4,363: | ||
=={{header|Sidef}}== |
=={{header|Sidef}}== |
||
{{trans|Perl}} |
{{trans|Perl}} |
||
<lang ruby> |
<lang ruby>var kap = Hash() |
||
var kap = Hash() |
|||
for n (1..15) { |
for n in (1..15) { |
||
var np = (10**n - 1) |
var np = (10**n - 1) |
||
np.divisors.each { |d| |
|||
var dp = np |
var dp = np/d |
||
if ((d |
if (is_coprime(dp, d)) { |
||
kap{ dp == 1 ? d : d*invmod(d, dp) } := 0 ++ |
kap{ dp == 1 ? d : d*invmod(d, dp) } := 0 ++ |
||
} |
} |
||
} |
} |
||
} |
} |
||
var nums = kap.keys.map{ |
var nums = kap.keys.map{ Num(_) }.sort |
||
for n (6 .. 14) { |
for n in (6 .. 14) { |
||
var np = (10**n - 1) |
var np = (10**n - 1) |
||
printf("Kaprekar numbers <= 10^%2d: %5d\n", n, nums.count_by { .<= np }) |
printf("Kaprekar numbers <= 10^%2d: %5d\n", n, nums.count_by { .<= np }) |