Carmichael lambda function
Built-in as Number#carmichael_lambda:
func iteratedToOne(n) {
var k = 0
while (n > 1) {
n.carmichael_lambda!
++k
}
return k
}
say " n λ k"
say "----------"
for n in (1..25) {
printf("%2d %2d %2d\n", n, n.carmichael_lambda, iteratedToOne(n))
}
say "\nIterations to 1 i lambda(i)"
say "====================================="
var table = []
1..Inf -> each {|k|
var n = iteratedToOne(k)
if (!table[n]) {
table[n] = true
printf("%4s %18s %12s\n", n, k, k.carmichael_lambda)
break if (n == 15)
}
}Output:
Last updated
Was this helpful?