中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-16 10:32
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]*****筛选质数***** 查看 1,010 回复 0
楼 主 [原创]*****筛选质数***** 发表于 2007-09-20 22:14 ·  中国 北京 电信
银牌会员
★★★
积分 2,098
发帖 566
注册 2007-09-11 07:27
UID 97070
性别 男
状态 离线

@echo off
setlocal enabledelayedexpansion
::::::::::::::::::::::::::::Find Prime Numbers::::::::::::::::::::::::::::
::::::::::::::::::::::::::::{s11ss 2007-9-20}::::::::::::::::::::::::::::
:r
echo Please input the upper limit number:
set /p n=
if not !n! geq 2 (echo 2 at least. & goto :r)
set /a i=2
:ci
set /a j=!i!
:cj
set /a m=!i!*!j!
if !m! leq !n! (
set /a j+=1
::set /a counter+=1
set m!m!=1
goto :cj
) else (
set /a i+=1
set /a ii=!i!*!i!
if !ii! leq !n! (goto :ci) else (goto :e)
)
:e
set s=
for /l %%a in (2,1,!n!) do (
if !m%%a! equ 1 (
set s=%%a !s!
)
)
set /a counter=0
echo.
echo In ,prime numbers are:
for /l %%a in (2,1,!n!) do (
set isprime=True
set prime=%%a
for %%b in (!s!) do (
if !prime! equ %%b set isprime=False
)
if !isprime! equ True (
echo !prime!
set /a counter+=1
)
)
echo.
echo In total:!counter!
echo.
echo Press Any Key To Exit.
pause>nul







修改提速版:

@echo off
setlocal enabledelayedexpansion
::::::::::::::::::::::::::::Find Prime Numbers::::::::::::::::::::::::::::
::::::::::::::::::::::::::::{s11ss 2007-9-20}::::::::::::::::::::::::::::
:r
echo Please input the upper limit number:
set /p n=
if not !n! geq 2 (echo 2 at least. & goto :r)
echo.
echo Calculating...
set /a i=2
for /l %%a in (2,1,!n!) do (
set m%%a=0
)
:ci
set /a j=!i!
:cj
set /a m=!i!*!j!
if !m! leq !n! (
set /a j+=1
set m!m!=1
goto :cj
) else (
set /a i+=1
set /a ii=!i!*!i!
if !ii! leq !n! (goto :ci) else (goto :e)
)
:e
set /a counter=0
echo.
echo In ,prime numbers are:
for /l %%a in (2,1,!n!) do (
if !m%%a! equ 0 (
echo %%a
set /a counter+=1
)
)
echo.
echo In total:!counter!
echo.
echo Press Any Key To Exit.
pause>nul


[ Last edited by s11ss on 2007-9-20 at 10:27 PM ]
论坛跳转: