Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
34
Task/Fortunate-numbers/Nim/fortunate-numbers.nim
Normal file
34
Task/Fortunate-numbers/Nim/fortunate-numbers.nim
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import algorithm, sequtils, strutils
|
||||
import bignum
|
||||
|
||||
const
|
||||
N = 50 # Number of fortunate numbers.
|
||||
Lim = 75 # Number of primorials to compute.
|
||||
|
||||
|
||||
iterator primorials(lim: Positive): Int =
|
||||
var prime = newInt(2)
|
||||
var primorial = newInt(1)
|
||||
for _ in 1..lim:
|
||||
primorial *= prime
|
||||
prime = prime.nextPrime()
|
||||
yield primorial
|
||||
|
||||
|
||||
var list: seq[int]
|
||||
for p in primorials(Lim):
|
||||
var m = 3
|
||||
while true:
|
||||
if probablyPrime(p + m, 25) != 0:
|
||||
list.add m
|
||||
break
|
||||
inc m, 2
|
||||
|
||||
list.sort()
|
||||
list = list.deduplicate(true)
|
||||
if list.len < N:
|
||||
quit "Not enough values. Wanted $1, got $2.".format(N, list.len), QuitFailure
|
||||
list.setLen(N)
|
||||
echo "First $# fortunate numbers:".format(N)
|
||||
for i, m in list:
|
||||
stdout.write ($m).align(3), if (i + 1) mod 10 == 0: '\n' else: ' '
|
||||
Loading…
Add table
Add a link
Reference in a new issue