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>