[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
也发一个,效率是个大问题。数字越大速度几何级下降。
  1. @echo off&setlocal enabledelayedexpansion
  2. cls
  3. :begin
  4. set/p var=请输入大于6的偶数(q退出):
  5. if "%var%"=="q" (goto :eof)
  6. set/a 1/var 2>nul || goto begin
  7. set/a yn=var%%2
  8. if !var! lss 6 (goto begin) else if !yn! neq 0 (goto begin)
  9. set/a var0=var/2
  10. for /l %%i in (3,1,!var0!) do (
  11. set /a num1=%%i,num2=var-num1
  12. call :lp !num1!
  13. if !ok!==yes (call :lp !num2!)
  14. if !ok!==yes (echo !var!=!num1!+!num2!)
  15. )
  16. goto begin
  17. :lp
  18. set ok=yes
  19. for /l %%x in (2,1,!var0!) do (
  20. if %1 gtr %%x (
  21. set/a tt=%1 %% %%x
  22. if !tt! equ 0 (set ok=no&goto :eof)
  23. )
  24. )
复制代码

TOP

原帖由 lhjoanna 于 2009-4-25 12:59 发表
采用位运算构造素数表,具体思路:比如构造10000以内的素数表,就用10000/32个变量来表示这10000个数的状态,每一个数都有32位,用每一位表示一种状态,1表示是素数,0表示非素数,这样就可以省下32倍的空间。比如判 ...


太厉害了。对移位运算和逻辑运算还不太明白。先下来收藏

TOP

返回列表