找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20292|回复: 1

[数值计算] 批处理搜索素数(1~100000)

[复制链接]
发表于 2007-11-1 23:11:43 | 显示全部楼层 |阅读模式
  1. ::code by youxi01@bbs.bathome.net,2006-10-3
  2. ::说明:搜索素数(质数),在1~100000之间的素数搜索较快.

  3. ===================cut here====================
  4. @echo off
  5. ::将素数5、7写入文件
  6. echo 5 >Result.txt
  7. echo 7 >>Result.txt
  8. ::------------------
  9. set /a Num1=2
  10. set /a Num2=3
  11. set /a Num=10
  12. ::启用"延迟环境变量"
  13. setlocal enabledelayedexpansion
  14. ::-----------------------------
  15. :Start
  16. set /a Num=%Num%+1
  17. title 正在检测:%Num%
  18. ::求余数
  19. set /a Num3=%Num%%%Num1%
  20. set /a Num4=%Num%%%Num2%
  21. ::------------------------
  22. ::如果能被2或3整除,就直接跳到Start(以免频繁读写Result.txt)。
  23. if %Num3% EQU 0 goto :Start
  24. if %Num4% EQU 0 goto :Start
  25. ::---------------------------------------------------------
  26. for /f %%i in (Result.txt) do (
  27. set /a T=%%i
  28. set /a S=%%i*%%i

  29. rem 如果S(平方)都比数字%Num%小,就看它能否整除变量%Num%,如果能,则判断为合数,跳出循环;
  30. rem 否则(即%Num%的平方根内无数字能整除%Num%)就直接将%Num%记入结果,跳出循环。

  31. if !S! leq %Num% (
  32. set /a T1=%Num%%%!T!
  33. if !T1! EQU 0 goto :Start
  34. ) else echo %Num%>>Result.txt & goto :Start
  35. rem ------------------------------------------
  36. )
  37. pause
复制代码
发表于 2011-9-1 21:22:16 | 显示全部楼层
一、快
二、简洁(对我来说~)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:29 , Processed in 0.016388 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表