Magnanimous numbers: Difference between revisions
Content added Content deleted
m (→{{header|C}}: Use C89 comment style.) |
(Realize in F#) |
||
Line 137: | Line 137: | ||
</pre> |
</pre> |
||
=={{header|F_Sharp|F#}}== |
|||
===The function=== |
|||
This task uses [http://www.rosettacode.org/wiki/Extensible_prime_generator#The_function Extensible Prime Generator (F#)] |
|||
<lang fsharp> |
|||
// Generate Magnanimous numbers. Nigel Galloway: March 20th., 2020 |
|||
let rec fN n g = match (g/n,g%n) with |
|||
(0,_) -> true |
|||
|(α,β) when isPrime (α+β) -> fN (n*10) g |
|||
|_ -> false |
|||
let Magnanimous = let Magnanimous = fN 10 in seq{yield! {0..9}; yield! Seq.initInfinite id |> Seq.skip 10 |> Seq.filter Magnanimous} |
|||
</lang> |
|||
===The Tasks=== |
|||
;First 45 |
|||
<lang fsharp> |
|||
Magnanimous |> Seq.take 45 |> Seq.iter (printf "%d "); printfn "" |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
0 1 2 3 4 5 6 7 8 9 11 12 14 16 20 21 23 25 29 30 32 34 38 41 43 47 49 50 52 56 58 61 65 67 70 74 76 83 85 89 92 94 98 101 110 |
|||
</pre> |
|||
;Magnanimous[241] to Magnanimous[250] |
|||
<lang fsharp> |
|||
Magnanimous |> Seq.skip 240 |> Seq.take 10 |> Seq.iter (printf "%d "); printfn "";; |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
17992 19972 20209 20261 20861 22061 22201 22801 22885 24407 |
|||
</pre> |
|||
;Magnanimous[391] to Magnanimous[400] |
|||
<lang fsharp> |
|||
Magnanimous |> Seq.skip 390 |> Seq.take 10 |> Seq.iter (printf "%d "); printfn "";; |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
486685 488489 515116 533176 551558 559952 595592 595598 600881 602081 |
|||
</pre> |
|||
=={{header|Factor}}== |
=={{header|Factor}}== |
||
{{works with|Factor|0.99 2020-01-23}} |
{{works with|Factor|0.99 2020-01-23}} |