标题: [数值计算] 批处理搜索素数(1~100000) [打印本页]
作者: youxi01 时间: 2007-11-1 23:11 标题: 批处理搜索素数(1~100000)
- ::code by youxi01@bbs.bathome.net,2006-10-3
- ::说明:搜索素数(质数),在1~100000之间的素数搜索较快.
-
- ===================cut here====================
- @echo off
- ::将素数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
复制代码
作者: garyng 时间: 2011-9-1 21:22
一、快
二、简洁(对我来说~)
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |