Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
19
Task/Almost-prime/F-Sharp/almost-prime.fs
Normal file
19
Task/Almost-prime/F-Sharp/almost-prime.fs
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
let rec genFactor (f, n) =
|
||||
if f > n then None
|
||||
elif n % f = 0 then Some (f, (f, n/f))
|
||||
else genFactor (f+1, n)
|
||||
|
||||
|
||||
let factorsOf (num) =
|
||||
Seq.unfold (fun (f, n) -> genFactor (f, n)) (2, num)
|
||||
|
||||
let kFactors k = Seq.unfold (fun n ->
|
||||
let rec loop m =
|
||||
if Seq.length (factorsOf m) = k then m
|
||||
else loop (m+1)
|
||||
let next = loop n
|
||||
Some(next, next+1)) 2
|
||||
|
||||
[1 .. 5]
|
||||
|> List.iter (fun k ->
|
||||
printfn "%A" (Seq.take 10 (kFactors k) |> Seq.toList))
|
||||
Loading…
Add table
Add a link
Reference in a new issue