- ·上一篇文章:批处理简单获取字符串的字节数
- ·下一篇文章:打开网页运行指定程序的批处理
- ·百度中搜索更多的关于“批处理搜索素数(1~100000)”相关内容
- ·谷歌中搜索更多的关于“批处理搜索素数(1~100000)”相关内容
- ******申明******
- 本站文章内容有部分为收录网络中其他网友内容,DOS资源站不保证所有的代码都适合你使用。
- 由于编辑匆忙,有可能造成某些脚本文件出现丢失代码或代码无法运行的情况,请网友根据情况自行修改。
- 如果能将出错部分反馈给我,那就更好了。
批处理搜索素数(1~100000)
::说明:搜索素数(质数),在1~100000之间的素数搜索较快.
@echo off &title DOS资源站 www.cmdos.net
::将素数5、7写入文件
echo 5 >Result.txt
echo 7 >>Result.txt
::------------------
set /a Num1=2
set /a Num2=3
set /a Num=10
::启用"延迟环境变量"
setlocal enabledelayedexpansion
::-----------------------------
:Start
set /a Num=%Num%+1
title 正在检测:%Num%
::求余数
set /a Num3=%Num%%%Num1%
set /a Num4=%Num%%%Num2%
::------------------------
::如果能被2或3整除,就直接跳到Start(以免频繁读写Result.txt)。
if %Num3% EQU 0 goto :Start
if %Num4% EQU 0 goto :Start
::---------------------------------------------------------
for /f %%i in (Result.txt) do (
set /a T=%%i
set /a S=%%i*%%i
rem 如果S(平方)都比数字%Num%小,就看它能否整除变量%Num%,如果能,则判断为合数,跳出循环;
rem 否则(即%Num%的平方根内无数字能整除%Num%)就直接将%Num%记入结果,跳出循环。
if !S! leq %Num% (
set /a T1=%Num%%%!T!
if !T1! EQU 0 goto :Start
) else echo %Num%>>Result.txt & goto :Start
rem ------------------------------------------
)
pause

