57 lines
995 B
Batchfile
57 lines
995 B
Batchfile
@echo off
|
|
setlocal enabledelayedexpansion
|
|
|
|
::Set the inputs
|
|
set "code=17/91 78/85 19/51 23/38 29/33 77/29 95/23 77/19 1/17 11/13 13/11 15/14 15/2 55/1"
|
|
set "n=2"
|
|
|
|
::Basic validation of code
|
|
for %%. in (!code!) do (
|
|
echo.%%.|findstr /r /c:"^[0-9][0-9]*/[1-9][0-9]*$">nul||goto error_code
|
|
)
|
|
::Validate the input
|
|
set /a "tst=1*!n!" 2>nul
|
|
if !tst! lss 0 goto error_input
|
|
if !tst! equ 0 (if not "!n!"=="0" (goto error_input))
|
|
|
|
::Set the limit outputs
|
|
set limit=20
|
|
|
|
::Execute the code
|
|
echo.Input:
|
|
echo. !n!
|
|
echo.Output:
|
|
for /l %%? in (1,1,!limit!) do (
|
|
set shouldwehalt=1
|
|
for %%A in (!code!) do (
|
|
for /f "tokens=1,2 delims=/" %%B in ("%%A") do (
|
|
set /a "tst=!n! %% %%C"
|
|
if !tst! equ 0 (
|
|
if !shouldwehalt! equ 1 (
|
|
set shouldwehalt=0
|
|
set /a "n=n*%%B/%%C"
|
|
echo. !n!
|
|
)
|
|
)
|
|
)
|
|
)
|
|
if !shouldwehalt! equ 1 goto halt
|
|
)
|
|
|
|
:halt
|
|
echo.
|
|
pause
|
|
exit /b 0
|
|
|
|
:error_code
|
|
echo.Syntax error in code.
|
|
echo.
|
|
pause
|
|
exit /b 1
|
|
|
|
:error_input
|
|
echo.Invalid input.
|
|
echo.
|
|
pause
|
|
exit /b 1
|