Factorial primes: Difference between revisions

Realize in F#
(Changed reference to 'Sequence of primorial primes' task.)
(Realize in F#)
Line 80:
</pre>
 
=={{header|F_Sharp|F#}}==
<lang fsharp>
// Factorial primes. Nigel Galloway: August 15th., 2022
let fN g=if Open.Numeric.Primes.MillerRabin.IsProbablePrime &g then Some(g) else None
let fp()=let rec fG n g=seq{let n=n*g in yield (fN(n-1I),-1,g); yield (fN(n+1I),1,g); yield! fG n (g+1I)} in fG 1I 1I|>Seq.filter(fun(n,_,_)->Option.isSome n)
fp()|>Seq.iteri(fun i (n,g,l)->printfn $"""%2d{i+1}: %3d{int l}!%+d{g} -> %s{let n=string(Option.get n) in if n.Length<41 then n else n[0..19]+".."+n[n.Length-20..]+" ["+string(n.Length)+" digits]"}""")
</lang>
{{out}}
<pre>
1: 1!+1 -> 2
2: 2!+1 -> 3
3: 3!-1 -> 5
4: 3!+1 -> 7
5: 4!-1 -> 23
6: 6!-1 -> 719
7: 7!-1 -> 5039
8: 11!+1 -> 39916801
9: 12!-1 -> 479001599
10: 14!-1 -> 87178291199
11: 27!+1 -> 10888869450418352160768000001
12: 30!-1 -> 265252859812191058636308479999999
13: 32!-1 -> 263130836933693530167218012159999999
14: 33!-1 -> 8683317618811886495518194401279999999
15: 37!+1 -> 13763753091226345046..79581580902400000001 [44 digits]
16: 38!-1 -> 52302261746660111176..24100074291199999999 [45 digits]
17: 41!+1 -> 33452526613163807108..40751665152000000001 [50 digits]
18: 73!+1 -> 44701154615126843408..03680000000000000001 [106 digits]
19: 77!+1 -> 14518309202828586963..48000000000000000001 [114 digits]
20: 94!-1 -> 10873661566567430802..99999999999999999999 [147 digits]
21: 116!+1 -> 33931086844518982011..00000000000000000001 [191 digits]
22: 154!+1 -> 30897696138473508879..00000000000000000001 [272 digits]
23: 166!-1 -> 90036917057784373664..99999999999999999999 [298 digits]
24: 320!+1 -> 21161033472192524829..00000000000000000001 [665 digits]
25: 324!-1 -> 22889974601791023211..99999999999999999999 [675 digits]
26: 340!+1 -> 51008644721037110809..00000000000000000001 [715 digits]
27: 379!-1 -> 24840307460964707050..99999999999999999999 [815 digits]
28: 399!+1 -> 16008630711655973815..00000000000000000001 [867 digits]
29: 427!+1 -> 29063471769607348411..00000000000000000001 [940 digits]
30: 469!-1 -> 67718096668149510900..99999999999999999999 [1051 digits]
31: 546!-1 -> 14130200926141832545..99999999999999999999 [1260 digits]
</pre>
=={{header|J}}==
<lang J> (,. (-!)/"1)1>.(,. >.@(!inv)@<:) (#~ 1 p: ]) ~.,(!i.27x)+/1 _1
2,172

edits