One-two primes

say "Smallest n digit prime using only 1 and 2:"

for k in (0..20) {
    ['1','2'].variations_with_repetition(k, {|*a|
        var p = Num(a.join)
        if (p.is_prime) {
            printf("%4d. %s\n", k, p)
            break
        }
    })
}

for k in (100..2000 `by` 100) {
    ['1','2'].variations_with_repetition(k-1, {|*a|
        var p = Num(a.join + '1')
        if (p.is_prime) {
            var t = Str(p)
            var i = t.index('2')
            printf("%4d. (1 x %s) %s\n", k, i, t.substr(i))
            break
        }
    })
}

Output:

Last updated

Was this helpful?