无聊的时候玩了一把黑客游戏,有一关是一个编程题,题目是求1到1000所有的素数的和,然后加一个sixtoseven.asp就是下一关的地址。
想来自己不会其它的编程语言,于是就用批处理脚本写了一个出来了,但是效率实在是令人不敢恭维,于是放出来让大家也来参与一下,应该用怎样的算法使这个批处理脚本的运行效率提高。如果遇到好的算法,我会酌情加分的,以表鼓励。
我写的代码如下:
@echo %db% off&setlocal enabledelayedexpansion
set t1=%time% %=开始计时=%
set ss=5
%=这里设置5是忽略了2和3,所以这里要加上=%
for /l %%a in (1,2,1000) do (
%=for里面设置步长(step)为2是为了剔除偶数,这样效率可能要高些=%
set /a num=%%a
set /a tc3=!num! "%%" 3
if !tc3! neq 0 (
set /a n=!num!-1
call :sss !n!
if == (echo !num!&set /a ss+=!num!)
)
)
echo 1—1000 中所有的素数加起来的和为: %=显示结果=%
set t2=%time%%=计时结束=%
echo/
echo 开始时间:%t1%
echo 结束时间:%t2%
echo/
pause&exit/b0
::::::::::::::::::Sub Function::::::::::::::::::::
:sss
set a=
for /l %%a in (2,1,%1) do (
set /a a=!num! "%%" %%a
if !a! equ 0 (
set flag=aaaa
goto :eof
) else (
set flag=bbbb)
)
本帖最近评分记录
(共 1 条)
点击查看详情
| 评分人 | 分数 | 时间 |
|---|---|---|
| redtek | +7 | 2007-01-25 02:21 |

