Sphenic numbers
func sphenic_numbers(upto) {
3.squarefree_almost_primes(upto)
}
func sphenic_triplets(upto) {
var S = sphenic_numbers(upto)
S.grep_kv {|k,v| v+2 == S[k+2] }.map{ [_, _+1, _+2] }
}
with (1e3) {|n|
say "Sphenic numbers less than #{n.commify}:"
sphenic_numbers(n-1).slices(15).each{.map{'%4s' % _}.join.say}
}
with (1e4) {|n|
say "\nSphenic triplets less than #{n.commify}:"
sphenic_triplets(n-1).each{.say}
}
with (1e6) {|n|
var triplets = sphenic_triplets(n-1)
say "\nThere are #{3.squarefree_almost_prime_count(n-1)} sphenic numbers less than #{n.commify}."
say "There are #{triplets.len} sphenic triplets less than #{n.commify}."
with (2e5) {|n| say "The #{n.commify}th sphenic number is: #{nth_squarefree_almost_prime(n, 3)}." }
with (5e3) {|n| say "The #{n.commify}th sphenic triplet is: #{triplets[n-1]}." }
}Output:
Last updated
Was this helpful?