| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4510 人关注过本帖
标题:求助,孪生素数问题
取消只看楼主 加入收藏
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
求助,孪生素数问题
题目:孪生素数是指两个相差为2 的素数。例如3 和5,5 和7,11 和13 等。编写程序输出m 对(m 由键盘输入)孪生素数。要求设计函数prime 用于判断某整数是否素数。


下面是我编的代码:



#include"stdio.h"
#include"math.h"
    main()
    {
    int m,j,l,n;                 /*定义变量*/
    int prime(int n);         /*函数的声明*/
    printf("Please input the numbers:");   /*提示输入*/
    scanf("%d",&m);                              
    for(j=0,l=2;j<=m;j++,l++)              /*利用循环输出所需的对数*/
        if(prime(l+2)==prime(l)+2)           /*判断是否符合孪生对数的条件*/
        {
            printf("%d=%d+2\n",l+2,l);   /*输出结果*/
        }
    getch();                                   /*WINTC需要这一个*/
    }
    int prime(int n)                        /*需要调用的函数*/
    {
    int k,i;                                    /*定义变量*/
    for(;n<=100000;n++)             /*利用循环,找出指定范围内的素数*/
        {
        if(n!=2&&n%2==0)continue;  /*排队除2以外的偶数*/
        k=sqrt(n);
        for(i=2;i<k;i++)
            if(n%i==0)break;
        if(i>=k)  return(n);              /*如果N是素数,即返回N的值*/
        }
   }
  

可是我的这一段代码输出的结果中包含不是素数的,不知道问题出在哪。
请问各位前辈,我这一段代码问题出在哪?谢谢

搜索更多相关主题的帖子: 孪生素数 
2010-12-03 23:53
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
收藏
得分:0 
这个貌似不能解决问题
2010-12-04 12:11
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
收藏
得分:0 
没有其他前辈帮忙看一下吗?
2010-12-04 22:19
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
收藏
得分:0 
以下是引用pragma在2010-12-4 22:38:49的发言:

prime函数写错了,我感觉lz思路一点也不清晰,prime俩面无缘无故的加循环,没有学过筛法计算素数吗?
prime函数哪里出问题了?
2010-12-04 23:42
快速回复:求助,孪生素数问题
数据加载中...
 
   



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

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