41 lines
659 B
Batchfile
41 lines
659 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
|