Sum multiples of 3 and 5: Difference between revisions
Content added Content deleted
(Added F# version) |
|||
Line 284: | Line 284: | ||
{{out}} |
{{out}} |
||
<pre>233168</pre> |
<pre>233168</pre> |
||
=={{header|F_Sharp|F#}}== |
|||
{{trans|Perl 6}} |
|||
<lang fsharp>let sum35 (n: int) = |
|||
Seq.init n (fun i -> i) |
|||
|> Seq.fold (fun sum i -> if i % 3 = 0 || i % 5 = 0 then sum + i else sum) 0 |
|||
printfn "%d" (sum35 1000) |
|||
printfn "----------" |
|||
let sumUpTo (n : bigint) = n * (n + 1I) / 2I |
|||
let sumMultsBelow k n = k * (sumUpTo ((n-1I)/k)) |
|||
let sum35fast n = (sumMultsBelow 3I n) + (sumMultsBelow 5I n) - (sumMultsBelow 15I n) |
|||
[for i = 0 to 30 do yield i] |
|||
|> List.iter (fun i -> printfn "%A" (sum35fast (bigint.Pow(10I, i))))</lang> |
|||
{{out}} |
|||
<pre style="height:5em">233168 |
|||
---------- |
|||
0 |
|||
23 |
|||
2318 |
|||
233168 |
|||
23331668 |
|||
2333316668 |
|||
233333166668 |
|||
23333331666668 |
|||
2333333316666668 |
|||
233333333166666668 |
|||
23333333331666666668 |
|||
2333333333316666666668 |
|||
233333333333166666666668 |
|||
23333333333331666666666668 |
|||
2333333333333316666666666668 |
|||
233333333333333166666666666668 |
|||
23333333333333331666666666666668 |
|||
2333333333333333316666666666666668 |
|||
233333333333333333166666666666666668 |
|||
23333333333333333331666666666666666668 |
|||
2333333333333333333316666666666666666668 |
|||
233333333333333333333166666666666666666668 |
|||
23333333333333333333331666666666666666666668 |
|||
2333333333333333333333316666666666666666666668 |
|||
233333333333333333333333166666666666666666666668 |
|||
23333333333333333333333331666666666666666666666668 |
|||
2333333333333333333333333316666666666666666666666668 |
|||
233333333333333333333333333166666666666666666666666668 |
|||
23333333333333333333333333331666666666666666666666666668 |
|||
2333333333333333333333333333316666666666666666666666666668 |
|||
233333333333333333333333333333166666666666666666666666666668</pre> |
|||
=={{header|FBSL}}== |
=={{header|FBSL}}== |