[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

回复 3楼 的帖子

3楼代码,刚好漏掉素数 2

TOP

我也来一个

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo 1
  4. echo 2
  5. set/a num=2
  6. for /l %%i in (3 2 1000) do (
  7. call :test %%i
  8. if !flag!==1 echo %%i&set/a num+=1
  9. )
  10. echo 1~1000内共有素数 %num% 个。
  11. pause>nul &goto :eof
  12. :test
  13. set /a flag=1
  14. set /a b=%1/2
  15. set /a count=0
  16. for /l %%a in (1 1 !b!) do (
  17.   set /a yushu=%1 %% %%a
  18.   if !yushu! equ 0 set /a count=!count!+1
  19.   if !count! gtr 1 (set /a flag=0 & goto :eof)
  20. )
复制代码
1

评分人数

TOP

原帖由 wxcute 于 2008-11-3 10:48 发表
@echo off
setlocal enableDelayedExpansion
>ss.txt echo 2
for /l %%i in (3 2 1000) do (
 for /f %%j in (ss.txt) do (
  set/a mod=%%i%%%%j
  if !mod! equ 0 set flag=1
 )
 if defined flag  ...


冰疼的代码,比上楼我的代码效率高多了,对冰疼的代码进行修改,不再写入文件。
  1. @echo off
  2. setlocal enableDelayedExpansion
  3. set str=2&set/a num=1
  4. echo 2
  5. for /l %%i in (3 2 1000) do (
  6. for %%j in (!str!) do (
  7.  set/a mod=%%i%%%%j
  8.  if !mod! equ 0 set flag=1
  9. )
  10. if defined flag (set flag=) else (echo %%i&set str=!str! %%i&set/a num+=1)
  11. )
  12. echo 1000以内的素数共有 %num% 个。
  13. pause>nul
  14. goto :eof
复制代码

[ 本帖最后由 sjzong 于 2009-5-8 14:57 编辑 ]
1

评分人数

    • wxcute: 改得好,有个问题就是数量再多的话可能会超 ...PB + 2

TOP

返回列表