-
- :gcd
- setlocal enableextensions
- set /a "n=%~1, m=%~2"
- :gcd_1
- if %n% gtr %m% (set /a temp=n, n=m, m=temp)
- set /a r=m%%n
- if %r%==0 (
- endlocal&set /a "%~3=%n%"&set /a "%~4=%~1*%~2/%n%"
- goto :EOF
- ) else (
- set /a m=n, n=r
- goto :gcd_1
- )
复制代码
例如 call :gcd 15 9 g1 l1 之后,15和9的最小公约数和最大公倍数分别被保存在g1和l1变量里了。。。
效率很高,很不错。。。 |