| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 888 人关注过本帖
标题:看不懂的程序大家给解释一下。谢谢
只看楼主 加入收藏
awei062
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-9-30
收藏
 问题点数:0 回复次数:6 
看不懂的程序大家给解释一下。谢谢
#include <stdio.h>
#include <math.h>


输出 101~200之间的全部素数。
main()
{
  int m,k,i,n=0;
  for(m=101;m<=200;m=m+2)
  {
     k=sqrt(m);
     for(i=2;i<=k;i++)
         if(m%i==0) break;
     if(i>=k+1)
       { printf("%d ",m); n=n+1; }
     if(n%10==0) printf("\n");
  }
  printf("\n");
}


这个if(i>=k+1)是什么意思?呀
搜索更多相关主题的帖子: 解释 
2008-09-30 12:29
J_j
Rank: 1
等 级:新手上路
威 望:1
帖 子:100
专家分:0
注 册:2008-8-21
收藏
得分:0 
请问楼主是否明白这个算法的实现思路? 如果你明白了,这就是相当简单的数学题!
如果你是不理解if(i>=k+1)是何意思,那么楼主回去翻课本效果会更好一点~!~
2008-09-30 14:10
守鹤
Rank: 4
来 自:山東臨沂
等 级:贵宾
威 望:12
帖 子:337
专家分:0
注 册:2008-6-20
收藏
得分:0 
整个程序的基本思路:

 for(m=101;m<=200;m=m+2)      //取101~到200间的一个数
  {
     k=sqrt(m);
     for(i=2;i<=k;i++)
         if(m%i==0) break;        //判断此数是否为素数,若是,则取下个数判断
     if(i>=k+1)                  
       { printf("%d ",m); n=n+1; } //输出这个素数,并记录素数的个数
     if(n%10==0) printf("\n");      //每一行显示10个数据
  }
  printf("\n");
}

多少个日日夜夜想起你,只希望有缘再次相见
2008-09-30 15:01
小小熊宝宝
Rank: 2
来 自:江苏无锡
等 级:论坛游民
威 望:2
帖 子:183
专家分:38
注 册:2008-8-12
收藏
得分:0 
for(i=2;i<=k;i++)
         if(m%i==0) break;
     if(i>=k+1) 判断一个数m是否为素数的条件,如果上面的m%i==0的结果都不成立,那么i++,直到i<=k,i再自加一次必然会大于等于k+1,素数条件就成立了,然后输出这个数

欢迎加入C语言交流群:43287755
2008-09-30 16:36
ytb745892798
Rank: 1
来 自:漳平。永福
等 级:新手上路
帖 子:63
专家分:0
注 册:2008-9-29
收藏
得分:0 
ls的解释是对的!

我的梦想是成为一名出色的程序员!
2008-10-11 16:24
hacker507
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2008-10-6
收藏
得分:0 
书是很好的老师 ,同事不要忘记了实践
2008-10-11 17:57
zqlzs
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-10-18
收藏
得分:0 
用if(i>k) 也可以吧???
2008-10-19 20:19
快速回复:看不懂的程序大家给解释一下。谢谢
数据加载中...
 
   



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

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