| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1155 人关注过本帖
标题:这段c语言是什么意思
只看楼主 加入收藏
ppppphh
Rank: 1
等 级:禁止访问
帖 子:106
专家分:0
注 册:2010-4-11
结帖率:75%
收藏
 问题点数:0 回复次数:12 
这段c语言是什么意思
#include<stdio.h>
#include<math.h>
void main()
{
              int   i,n;
              for(n=2;n<=10;n++) {
                       int  temp=(int)sqrt(n);
                       for(i=2;i<=temp;i++)
                                 if(n%i==0) break;
                       if(i>temp) printf("%d ",n);
              }
              printf("\n");
}
我知道答案是2  3  5  7   11   13   17   19
 我就想知道它是怎么算出来的
搜索更多相关主题的帖子: c语言 
2010-07-02 17:37
xiaweiqiang
Rank: 2
等 级:论坛游民
帖 子:27
专家分:82
注 册:2010-7-1
收藏
得分:0 
从n=2开始  temp 将对 n取开方的值强制转换成 int 型  赋给 temp;
在将 i与 temp  相比较  大的话  就输出  n    答案应该是  2 3 5 7  你答案错了吧
2010-07-02 18:06
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:0 
此乃质子数列
什么是质数呢? 质数就是只能被1和其本身整除
而判断一个数是否为质数就是让它
和2直到其本身(除本身外)能否找到一个数被它整除 如果找到了那么它就不是质数
通常也不用一直整除到这个数的本身,一般整除到这个数的开方+1就成了,
所以要用到sqrt(n),这下你明白了吧。
群号  吃鹅吃柳又爱我吧

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-07-02 20:25
xinbuzai
Rank: 1
等 级:新手上路
帖 子:29
专家分:8
注 册:2010-7-2
收藏
得分:0 
#include<stdio.h>
#include<math.h>
void main()
{
              int   i,n;
              for(n=2;n<=10;n++) {
                       int  temp=(int)sqrt(n);
                       for(i=2;i<=temp;i++)
                                 if(n%i==0) break;
                       if(i>temp) printf("%d ",n);
              }
              printf("\n");
偶也初学者,但这个程序还是看得懂,因为计算不大,偶来具体分析程序是怎么算的!
首先进入第一个循环FOR,n=2,判断n<=10是否成立,成产则执行下面的语句,(int)sqrt(n);为求n的开方并强制转换成整数型数据,赋值给变量temp,temp=1,进入第二个循环体,i=2,i<=temp,不成立,第二个循环体语句不衩执行,回来第一循环,执行最后一个if语句,条件成立,输出此时时n的值:2,


[ 本帖最后由 xinbuzai 于 2010-7-2 23:36 编辑 ]
2010-07-02 23:29
xinbuzai
Rank: 1
等 级:新手上路
帖 子:29
专家分:8
注 册:2010-7-2
收藏
得分:0 
2,第一个FOR语句进入第二次循环,n=3,开方,temp=1,不进入第二循环,输出此时的n,3,
3,第一个FOR语句进入第三次循环,n=4,开方,temp=2,i=2,i<=temp,成立,进入第二循环语句,判断n除以i的余数是还为0(或n是否被i整除),成立,break结束本次循环,i=3,第二循环体能否第次执行i<=temp?i=3,temp=4,终止第二循环体,执行if,i<temp,不输出n
4,第一个FOR语句进入第三次循环,n=5,开方,temp=2,i=2,i<=temp成立,进入第二循环语句,判断n除以i的余数是还为0(或n是否被i整除),不成立,继续循环。i=3,判断n除以i的余数是还为0,再次循环,i=4,最后i=5,跳出第二循环语句,回到第一循环语句的最后一行,if,输出n,5.
以此类推。n=7才输出!
2010-07-02 23:56
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
以下是引用xiaweiqiang在2010-7-2 18:06:27的发言:

从n=2开始  temp 将对 n取开方的值强制转换成 int 型  赋给 temp;
在将 i与 temp  相比较  大的话  就输出  n    答案应该是  2 3 5 7  你答案错了吧
同意二楼的看法。
这就是一个判断并输出10以内的质数的程序。

南国利剑
2010-07-03 03:34
胡马平
Rank: 2
等 级:论坛游民
帖 子:18
专家分:54
注 册:2010-3-16
收藏
得分:0 
for (n =2 ;n <=MAX;n++);MAX用宏定义,就可以输出2到MAX的质数。
2010-07-03 07:26
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
收藏
得分:0 
谁能说一下?
2010-07-03 08:09
赵本山
Rank: 2
等 级:论坛游民
帖 子:34
专家分:47
注 册:2010-7-4
收藏
得分:0 
真的是明白人。
2010-07-04 17:11
飘雪丶o
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-7-4
收藏
得分:0 
同意2楼的!
2010-07-04 17:16
快速回复:这段c语言是什么意思
数据加载中...
 
   



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

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