28 lines
668 B
Text
28 lines
668 B
Text
F get_primes(primes_count)
|
||
V limit = 17 * primes_count
|
||
V is_prime = [0B] * 2 [+] [1B] * (limit - 1)
|
||
L(n) 0 .< Int(limit ^ 0.5 + 1.5)
|
||
I is_prime[n]
|
||
L(i) (n * n .< limit + 1).step(n)
|
||
is_prime[i] = 0B
|
||
|
||
[Int] primes
|
||
L(prime) is_prime
|
||
I prime
|
||
primes.append(L.index)
|
||
I primes.len == primes_count
|
||
L.break
|
||
R primes
|
||
|
||
V primes = get_primes(100000)
|
||
|
||
F primorial(n)
|
||
BigInt r = 1
|
||
L(i) 0 .< n
|
||
r *= :primes[i]
|
||
R r
|
||
|
||
print(‘First ten primorials: ’(0.<10).map(n -> primorial(n)))
|
||
L(e) 0.<6
|
||
V n = 10 ^ e
|
||
print(‘primorial(#.) has #. digits’.format(n, String(primorial(n)).len))
|