| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 617 人关注过本帖
标题:初学者自编程序问题
只看楼主 加入收藏
lingyunhappy
Rank: 2
等 级:论坛游民
帖 子:40
专家分:45
注 册:2010-3-8
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:5 
初学者自编程序问题
题目:求2到32767之间的素数 我用的是DEV开发软件
#include <stdio.h>
main()
{int i,n;
 for(n=2;n<=32767;n++)
    for(i=2;n%i==0;i++)
    if(i==n)
    printf("%d\n",n);
    system ("pause");
    return 0;
}
显示的结果只有一个数字就是2 哪里出问题了 困扰我一夜了
搜索更多相关主题的帖子: 编程序 
2010-03-19 09:38
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:6 
#include <stdio.h>
main()
{int i,n;
for(n=2;n<=32767;n++)
{
    for(i=2;i<n;i++)
    {
        if (n%i == 0)
            break;
    }
    if(i==n)
        printf("%d\n",n);
}
    system ("pause");
    return 0;
}
2010-03-19 09:48
mikelr
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:161
注 册:2010-3-17
收藏
得分:4 
#include <stdio.h>

#define TRUE 1
#define FALUSE 0

typedef int Bool;

Bool isPrime(int n);

int main(void)
{
    int num;

    for(num = 2;num <= 32767;num++)
    {
        if(isPrime(num))
            printf("%d\n",num);
    }
    return 0;
}
Bool isPrime(int n)
{
    int i;

    for(i = 2; i * i <= n;i++)
    {
        if(n % i == 0)
            return FALUSE;
    }

    return TRUE;
}
2010-03-19 10:11
jrkaho
Rank: 2
等 级:论坛游民
帖 子:24
专家分:55
注 册:2010-3-13
收藏
得分:10 

#include <stdio.h>
main()
{int i,n;
for(n=2;n<=32767;n++)
    for(i=2;n%i==0;i++)
    if(i==n)
    printf("%d\n",n);
    system ("pause");
    return 0;
}
为什么只有2呢?原因是这样的:
一。首先是n=2进来,然后进入第二个for语句 i=2 ,判断n%i是否0,
所以当i=2时 是成立的,但是i=3时 条件n%i==0就不成立 退出第二个for语句。

二。当n自加等于3时侯,3%2不等于0,所以直接就退出第二个for语句了。

三。当n自加等于4的时候 ,n%i==0成立,但是n不等于i 所以不能打印,然后i自加等于5,不满足
n%i==0 所以退出第二个for语句。

以此类推,当n=奇数 第二个for语句是不满足n%i==0这个条件的,所以第二个for语句一次也不能执行。
          当n=偶数(n>2) 第二个for语句只能执行一次(因为第二次i=3 n%i是不会等于0的) 并且由于i不等于n 所以不会打印

因此程序就只能打印出2。




[ 本帖最后由 jrkaho 于 2010-3-19 11:09 编辑 ]
2010-03-19 10:23
lingyunhappy
Rank: 2
等 级:论坛游民
帖 子:40
专家分:45
注 册:2010-3-8
收藏
得分:0 
3楼的答案可能是很好的 但是暂时的我还是看不懂 所以给分少 别介意
感谢大伙的帮助!!!
2010-03-19 12:12
cz454025024
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-3
收藏
得分:0 
  四楼的讲解专业啊
2010-04-03 13:15
快速回复:初学者自编程序问题
数据加载中...
 
   



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

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