Digital root: Difference between revisions
Content deleted Content added
Line 665: | Line 665: | ||
=={{header|F_Sharp|F#}}== |
=={{header|F_Sharp|F#}}== |
||
This code uses sumDigits from [[Sum_digits_of_an_integer#or_Generically]] |
|||
<lang fsharp> |
|||
//Find the Digital Root of An Integer - Nigel Galloway: February 1st., 2015 |
|||
//This code will work with any integer type |
|||
let inline digitalRoot N BASE = |
|||
let rec root(p,n) = |
|||
let s = sumDigits n BASE |
|||
if s < BASE then (s,p) else root(p+1, s) |
|||
root(LanguagePrimitives.GenericZero<_> + 1, N) |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
> digitalRoot 627615 10;; |
|||
val it : int * int = (9, 2) |
|||
> digitalRoot 39390 10;; |
|||
val it : int * int = (6, 2) |
|||
> digitalRoot 588225 10;; |
|||
val it : int * int = (3, 2) |
|||
> digitalRoot 393900588225L 10L;; |
|||
val it : int64 * int = (9L, 2) |
|||
> digitalRoot 123456789123456789123456789123456789123456789I 10I;; |
|||
val it : System.Numerics.BigInteger * int = (9 {IsEven = false; |
|||
IsOne = false; |
|||
IsPowerOfTwo = false; |
|||
IsZero = false; |
|||
Sign = 1;}, 2) |
|||
</pre> |
|||
=={{header|Fortran}}== |
=={{header|Fortran}}== |
||
<lang Fortran> |
<lang Fortran> |