Digital root/Multiplicative digital root: Difference between revisions

→‎Tcl: Added implementation
m (integrate wikipedia link)
(→‎Tcl: Added implementation)
Line 325:
{{out}}
(Exactly the same as before).
 
=={{header|Tcl}}==
<lang tcl>proc mdr {n} {
if {$n < 0 || ![string is integer $n]} {
error "must be an integer"
}
for {set i 0} {$n > 9} {incr i} {
set n [tcl::mathop::* {*}[split $n ""]]
}
return [list $i $n]
}</lang>
Demonstrating:
<lang tcl>puts "Number: MP MDR"
puts [regsub -all . "Number: MP MDR" -]
foreach n {123321 7739 893 899998} {
puts [format "%6d: %2d %3d" $n {*}[mdr $n]]
}
puts ""
for {set i [set l 0]} {$l < 10} {incr i} {
set r [lindex [mdr $i] 1]
if {[llength [lappend a($r) $i]] == 5} {incr l}
}
puts "MDR: \[n\u2080\u2026n\u2084\]"
puts [regsub -all . "MDR: \[n\u2080\u2026n\u2084\]" -]
for {set i 0} {$i < 10} {incr i} {
puts [format "%3d: (%s)" $i [join [lrange $a($i) 0 4] ", "]]
}</lang>
{{out}}
<pre>
Number: MP MDR
--------------
123321: 3 8
7739: 3 8
893: 3 2
899998: 2 0
 
MDR: [n₀…n₄]
------------
0: (0, 10, 20, 25, 30)
1: (1, 11, 111, 1111, 11111)
2: (2, 12, 21, 26, 34)
3: (3, 13, 31, 113, 131)
4: (4, 14, 22, 27, 39)
5: (5, 15, 35, 51, 53)
6: (6, 16, 23, 28, 32)
7: (7, 17, 71, 117, 171)
8: (8, 18, 24, 29, 36)
9: (9, 19, 33, 91, 119)
</pre>
Anonymous user