45 lines
673 B
Batchfile
45 lines
673 B
Batchfile
::
|
|
::Digital Root Task from Rosetta Code Wiki
|
|
::Batch File Implementation
|
|
::
|
|
::Base 10...
|
|
::
|
|
|
|
@echo off
|
|
setlocal enabledelayedexpansion
|
|
|
|
::THE MAIN THING...
|
|
for %%x in (9876543214 393900588225 1985989328582 34559) do (
|
|
call :droot %%x
|
|
)
|
|
echo.
|
|
pause
|
|
exit /b
|
|
::/THE MAIN THING...
|
|
|
|
::THE FUNCTION
|
|
:droot
|
|
set inp2sum=%1&set persist=1
|
|
|
|
:cyc1
|
|
set sum=0
|
|
set scan_digit=0
|
|
:cyc2
|
|
set digit=!inp2sum:~%scan_digit%,1!
|
|
if "%digit%"=="" (goto :sumdone)
|
|
set /a sum+=%digit%
|
|
set /a scan_digit+=1
|
|
goto :cyc2
|
|
|
|
:sumdone
|
|
if %sum% lss 10 (
|
|
echo.
|
|
echo ^(%1^)
|
|
echo Additive Persistence=%persist% Digital Root=%sum%.
|
|
goto :EOF
|
|
)
|
|
set /a persist+=1
|
|
set inp2sum=%sum%
|
|
goto :cyc1
|
|
::/THE FUNCTION
|