func fermat_number(n) { 2**(2**n) + 1 } func fermat_one_factor(n) { fermat_number(n).ecm_factor } for n in (0..9) { say "F_#{n} = #{fermat_number(n)}" } say '' for n in (0..13) { var f = fermat_one_factor(n) say ("F_#{n} = ", join(' * ', f.shift, f.map { [.is_prime] + .len }...)) }