最小公倍数を求めるだけです。
最小公倍数は最大公約数がわかれば求まります。最大公約数は再帰で簡単に求まります。
@echo off set /a N = 20 call :solve %N% 1 echo %ERRORLEVEL% exit /b 0 :solve setlocal if %1 == 1 exit /b %2 call :lcm %1 %2 set /a k = %1 - 1 call :solve %k% %ERRORLEVEL% exit /b %ERRORLEVEL% :lcm setlocal call :gcd %1 %2 set /a n = %1 / %ERRORLEVEL% * %2 exit /b %n% :gcd setlocal set /a r = %1 %% %2 if %r% == 0 exit /b %2 call :gcd %2 %r% exit /b %ERRORLEVEL%