也发一个,效率是个大问题。数字越大速度几何级下降。- @echo off&setlocal enabledelayedexpansion
- cls
- :begin
- set/p var=请输入大于6的偶数(q退出):
- if "%var%"=="q" (goto :eof)
- set/a 1/var 2>nul || goto begin
- set/a yn=var%%2
- if !var! lss 6 (goto begin) else if !yn! neq 0 (goto begin)
-
- set/a var0=var/2
- for /l %%i in (3,1,!var0!) do (
- set /a num1=%%i,num2=var-num1
-
- call :lp !num1!
- if !ok!==yes (call :lp !num2!)
- if !ok!==yes (echo !var!=!num1!+!num2!)
- )
-
- goto begin
-
-
-
- :lp
- set ok=yes
- for /l %%x in (2,1,!var0!) do (
- if %1 gtr %%x (
- set/a tt=%1 %% %%x
- if !tt! equ 0 (set ok=no&goto :eof)
- )
- )
复制代码
|