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

注意

以上计算方法个人认为适合 求算 10000 以内的素数,对于超大数字,应使用其它计算方法

TOP

回复 12楼 的帖子

代码稍做修改,效率稍有提高:
  1. @echo off&setlocal EnableDelayedExpansion
  2. for /l %%a in (101 2 200) do (
  3.   set "flag="
  4.   for /l %%b in (3 2 15) do (
  5.     set /a m=%%a %% %%b
  6.      if !m! equ 0 set flag=A
  7.   )
  8.   if not defined flag echo 素数 %%a
  9. )
  10. echo\&pause
复制代码
继续修正1,运行所用时间仅为原来的1/4
继续修正2,运行速率提高为原来的20倍

TOP

【程序12】
题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
      则表明此数不是素数,反之是素数。

:
  1. @echo off&setlocal EnableDelayedExpansion
  2. for /l %%a in (101 1 200) do (
  3.   set /a n=%%a-1&set "flag="
  4.   for /l %%b in (2 1 !n!) do (
  5.     set /a m=%%a%%%%b
  6.      if !m! equ 0 set flag=a
  7.   )
  8.   if not defined flag echo 素数 %%a
  9. )
  10. echo\&pause
复制代码
技术问题请到论坛发帖求助!

TOP

素数问题:提示
另一方面,除去1以外,有的数除了1和它本身以外,不能再被别的整数整除,如
  2、3、5、7、11、13、17、...
等,这种数称作素数(也称质数)。有的数除了1和它本身以外,还能被别的整数整除,这种数就叫合数,如
  4、6、8、9、10、12、14、...
等,就是合数。
大家做啊
【新青年世界】
windows+R
cmd
start http:/hi.baidu.com/huajinghua

TOP

继续兔子问题哈。不能一直管理员做题,我也做,这是我写的,测试没有错。
@echo off&setlocal enabledelayedexpansion
:a
set/p n=请输入月份
set a1=1
set a2=0
for /l %%i in (1,1,%n%) do (
set /a a3=!a1!+!a2!
set a1=!a2!
set a2=!a3!
echo !a3!)
pause
cls&goto a
【新青年世界】
windows+R
cmd
start http:/hi.baidu.com/huajinghua

TOP

不错不错,高手不愧是高手
【新青年世界】
windows+R
cmd
start http:/hi.baidu.com/huajinghua

TOP

程序9

意思不明:“控制输出黑方格,还是白方格。”
是这样吗:□和■

TOP

打印99乘法表

此题namejm已经做了,测试代码:
  1. @echo off &setlocal enabledelayedexpansion
  2. for /l %%a in (1 1 9) do (
  3.         for /l %%b in (1 1 %%a) do (
  4.                 set/a res=%%a*%%b
  5.                 set "res=!res!  " %======此处用来对齐=========%
  6.                 set/p=%%ax%%b=!res:~0,2!  <nul
  7.         )
  8.         echo.
  9. )
  10. pause>nul
复制代码

TOP

求某日期在一年中是第几天

测试代码:
  1. @echo off &setlocal enabledelayedexpansion
  2. set /p Cdate=请输入日期(如:2008-1-2日或2008/01/02):
  3. for /f "tokens=1-3 delims=/-, " %%a in ("%Cdate%") do (
  4. set/a yy=%%a,mm=100%%b%%100,dd=100%%c%%100
  5. )
  6. call ate2Day %yy%-1-1 days1
  7. call ate2Day %Cdate% days2
  8. set/a res=days2-days1+1
  9. echo.&echo %yy%年%mm%月%dd%日 是 %yy%年 的第 %res% 天。
  10. pause>nul
  11. goto :eof
  12. ::注意:以下"函数"由willsort完成(略有改动);
  13. ate2Day 日期 传回(数值)结果
  14. setlocal ENABLEEXTENSIONS
  15. for /f "tokens=1-3 delims=/-, " %%a in ('echo/%1') do (
  16.   set yy=%%a & set mm=%%b & set dd=%%c
  17. )
  18. set /a dd=100%dd%%%100,mm=100%mm%%%100
  19. set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
  20. set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
  21. endlocal&set %2=%j%&goto :EOF
  22. ay2Date 数值 传回(日期)结果
  23. setlocal ENABLEEXTENSIONS
  24. set /a i=%1,a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
  25. set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
  26. set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
  27. (if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
  28. endlocal&set %2=%yy%-%mm%-%dd%&goto :EOF
复制代码

TOP

求数字不同的排列组合

论坛里前几天就出现了相关代码,测试代码:
  1. @echo off &setlocal enabledelayedexpansion
  2. set "str=1 2 3 4 "
  3. for %%a in (%str%) do (
  4.         set var1=!str:%%a =!
  5.         for %%b in (!var1!) do (
  6.                 set var2=!var1:%%b =!
  7.                 for %%c in (!var2!) do (
  8.                         echo %%a%%b%%c
  9.                 )
  10.         )
  11. )
  12. pause>nul
复制代码

TOP

大多的问题在dos联盟里已经解决了
可以考虑加精
欢迎各位朋友继续"突破"

TOP

如果谁能全部用批处理做出来,那绝对可以成为高手。哈哈
【新青年世界】
windows+R
cmd
start http:/hi.baidu.com/huajinghua

TOP

哈哈  沙发。对 来说太难了
@set,=学无止境
@for /l %%b in (0,1,6) do @call set/p= %%,:~%%b,1%%<nul

TOP

返回列表