| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 874 人关注过本帖
标题:求素数问题
只看楼主 加入收藏
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:10 
求素数问题
#include"stdio.h"
  void main()
    {
    int n,i;
    for(n=100;n<=200;n++)
    {
    for(i=2;i<n;i++)
    if(n%i==0) break;
    if(i>=n) printf("%d\t",n);
    }
        }
这是一个求出100到200之内的素数的代码。这一个程序能够运行,但是我看不懂,其中红色的那一句有什么作用?请问一下红色的那一句有什么作用?
搜索更多相关主题的帖子: 素数 
2010-11-11 22:22
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:0 
for循环的结构都否?

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2010-11-11 22:32
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
收藏
得分:0 
以下是引用zghnxzdcx在2010-11-11 22:32:17的发言:

for循环的结构都否?
其实是不明白,为什么是i=2?
这一点是不明白。。
2010-11-11 22:37
chimeixing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:14
专家分:130
注 册:2010-10-19
收藏
得分:1 
i如果=1那么for循环就失效了,因为无论n取什么整数,i=1总有n%i=0,遇到break就跳出了循环。其实我也是新手。

菜鸟
2010-11-12 01:45
韭菜
Rank: 2
等 级:论坛游民
帖 子:51
专家分:94
注 册:2010-9-26
收藏
得分:4 
头有点大  楼主 2是最小的因子  被1整除没有意义  所以必须从2开始

素数的定义是只能被1和自身整除的数为素数
2010-11-12 09:21
zbsilent
Rank: 2
等 级:论坛游民
帖 子:23
专家分:16
注 册:2010-11-11
收藏
得分:1 
回复 楼主 折翼
#include"stdio.h"
void main()//LZ这里应该是定义整形吧。
{
    int n,i;
    for(n=100;n<=200;n++)
   {
      for(i=2;i<n;i++)//这里正如楼上朋友所说。
      if(n%i==0)
      break;
      if(i>=n)
      printf("%d\t",n);//有点搞不懂这里为什么要用\t,水平制表呢?
  }
}
2010-11-12 10:56
zbsilent
Rank: 2
等 级:论坛游民
帖 子:23
专家分:16
注 册:2010-11-11
收藏
得分:1 
回复 楼主 折翼
#include"stdio.h"
void main() //这里应该用int定义吧,定义整形。
{
    int n,i;
    for(n=100;n<=200;n++)
   {
      for(i=2;i<n;i++)//从1开始,函数直接跳出了
      if(n%i==0)
      break;
      if(i>=n)
      printf("%d\t",n);//这个水平制表在这里的作用是什么?我也是新手。
    }
}
2010-11-12 10:58
pangge
Rank: 2
等 级:论坛游民
帖 子:27
专家分:32
注 册:2010-8-30
收藏
得分:3 
#include"stdio.h"
  void main()
    {
    int n,i;
    for(n=100;n<=200;n++)
    {
    for(i=2;i<n;i++)  //每判断一个新的n值是否为素数,必须用2到n除这个数,所以有飞、for(i=2;i<n;i++)表示判断每个数是否为素数的循环
    if(n%i==0) break;  //如果有小于n的数i能被整除n,表示n不是素数,break掉。
    if(i>=n) printf("%d\t",n);
    }
        }
2010-11-12 12:45
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
收藏
得分:0 
谢谢多位楼上,我已经明白了。
2010-11-12 19:29
ma247233086
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-11-12
收藏
得分:0 
为什么i要>=n呢?
2010-11-13 09:18
快速回复:求素数问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026906 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved