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

[数值计算] [已解决]批处理怎么判断素数?

本帖最后由 abcdshenji 于 2011-3-20 03:03 编辑

【程序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
复制代码
youxi01大哥这样写:
  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
复制代码
第一个例子平方根为什么是%%a-1?第二个例子又为什么在(3 2 15)范围循环?

回复 2楼 的帖子

1、set /a n=%%a-1帮忙解释下为什么是%%a-1?
2、那为什么前面%%a的步长是2不是1?

TOP

回复 7楼 的帖子

大哥你这段我看不懂啊。。能详细解释下吗

TOP

回复 10楼 的帖子

汗一个。。。小弟不只数学不好语文也不好。。你说的这些不知道跟我问的问题有什么必然联系。。越迷糊了。。唉

TOP

返回列表