Advertisement
Guest User

F# PJ12

a guest
Mar 30th, 2014
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.67 KB | None | 0 0
  1.     open System.Numerics
  2.    
  3.     let seqTriNum = Seq.initInfinite (fun index ->
  4.         let bigIndex = BigInteger(index)
  5.         (bigIndex + 1I) * bigIndex / 2I)
  6.  
  7.     let divCount (number : BigInteger) =
  8.         let rec loop (count : BigInteger) (i : BigInteger) =
  9.             match number with
  10.             | _ when (number = 0I || number = 1I || number = 2I) -> number
  11.             | _ when i = 0I -> count + 1I  //Counting the element as appears to be its divisor
  12.             | _ when number % i = 0I -> loop (count + 1I) (i - 1I)
  13.             | _ -> loop count (i - 1I)
  14.         loop 0I (number/2I + 1I)
  15.    
  16.     let result = Seq.find (fun x -> divCount x > 500I) seqTriNum
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement