Equal prime and composite sums

func f(n) {
 
    var (
        p = 2, sp = p,
        c = 4, sc = c,
    )
 
    var res = []
 
    while (res.len < n) {
        if (sc == sp) {
            res << [sp, c.composite_count, p.prime_count]
            sc += c.next_composite!
        }
        while (sp < sc) {
            sp += p.next_prime!
        }
        while (sc < sp) {
            sc += c.next_composite!
        }
    }
 
    return res
}
 
f(8).each_2d {|n, ci, pi|
    printf("%12s = %-9s = %s\n", n, "P(#{pi})", "C(#{ci})")
}

Output:

(takes ~6 seconds)

Last updated

Was this helpful?