Next special primes

func special_primes(upto) {

    var gap  = 0
    var prev = 2
    var list = [[prev, gap]]

    loop {
        var n = prev+gap
        n = n.next_prime
        break if (n > upto)
        gap = n-prev
        list << [n, gap]
        prev = n
    }

    return list
}

special_primes(1050).each_2d {|p,gap|
    say "#{'%4s' % p} #{'%4s' % gap}"
}

Output:

Last updated

Was this helpful?