Fortunate numbers: Difference between revisions

Content added Content deleted
(Added Go)
Line 79: Line 79:
373 379 383 397 401 409 419 421 439 443
373 379 383 397 401 409 419 421 439 443
</pre>
</pre>

=={{header|Nim}}==
{{libheader|bignum}}
Nim doesn’t provide a standard module to deal with big integers. So, we have chosen to use the third party module “bignum” which provides functions to easily find primes and check if a number is prime.
<lang Nim>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: ' '</lang>

{{out}}
<pre>First 50 fortunate numbers:
3 5 7 13 17 19 23 37 47 59
61 67 71 79 89 101 103 107 109 127
151 157 163 167 191 197 199 223 229 233
239 271 277 283 293 307 311 313 331 353
373 379 383 397 401 409 419 421 439 443</pre>


=={{header|Raku}}==
=={{header|Raku}}==