| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5315 人关注过本帖, 1 人收藏
标题:(哥德巴赫猜想)求各位解释一下程序。
只看楼主 加入收藏
kang7716
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-12-22
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:8 
(哥德巴赫猜想)求各位解释一下程序。
如题,自己根据网上的一些代码自己改的,但是还是有部分不太明白,烦劳论坛里的各位大虾讲解一下。
程序代码:
#include"stdio.h"
#include"math.h"
   void P(int x){
  int i,j,f,count = 0;
  
  for(i = 2;i < x/2;i++){//为什么遍历到x/2就可以了?
      f = 1;
      for(j = 2;j <= sqrt(i);j++)
      if(i % j == 0) f = 0;
      if(f){
        for(j = 2;j < sqrt(x - i);j++)
        if((x - i) % j == 0) f = 0;
         if(f){
         count++;//判断有多少种可能
         printf("%d",count);//如果想用返回值,并且返回那两个素数该怎么弄?
                  }
          }
  }
    }

int main ()
{  
    int x;

    do{
    scanf("%d",&x);
    }while(x % 2||x < 3);//这个判断条件不是太明白,还有C中while(t--);while(t)等判断条件是什么意思?

    P(x);
    return 0;
  }
搜索更多相关主题的帖子: 哥德巴赫 网上 
2014-12-22 16:51
mohun
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:49
专家分:125
注 册:2014-12-22
收藏
得分:10 
#include"stdio.h"
#include"math.h"
void P(int x){
    int i, j, f, count = 0;

    for (i = 2; i < x / 2; i++)//首先,这姑且算是在哥德巴赫猜想成立的前提下对其的一个运用吧。等相互数列应该懂吧,
                              //这就如同等差中项,是为了找到x/2之前的一个加数,下面的“x-i”是另一个加数。
    {
        f = 1;
        for (j = 2; j <= sqrt(i); j++)
        if (i % j == 0) f = 0;
        if (f){
            for (j = 2; j < sqrt(x - i); j++)
            if ((x - i) % j == 0) f = 0;//判断另一个加数是否为素数。
            if (f){
                count++;
            
                printf_s("%d=%d+%d\n",x,i,x-i );
            }
        }//这个问题我给你改了一下程序,自己对照着看看,如果不明白再问。
    }
    printf("共%d种可能。\n", count);
}

int main()
{
    int x;

    do{
        scanf_s("%d", &x);
    } while (x % 2 || x < 3);//这个和前面的“if(f)”是一样的道理。
                            //二进制中,表达式真则值为1,假为0;循环和选择的判断条件就是根据这个来的;
    P(x);                  //括号内表达式值为0,表示判断条件不成立;只要是其他非0值,都表示其成立。
    return 0;             //这个while的判断条件是指x%2与x<3只要有一个成立,那么就继续循环;也就是除非你
                         //输入一个大于三的偶数,否则无限循环。
}

//有不明白的可以继续疑问,尽量解决。
2014-12-23 00:20
mohun
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:49
专家分:125
注 册:2014-12-22
收藏
得分:0 
#include"stdio.h"
#include"math.h"
void P(int x){
    int i, j, f, count = 0;

    for (i = 2; i < x / 2; i++)//首先,这姑且算是在哥德巴赫猜想成立的前提下对其的一个运用吧。等相互数列应该懂吧,
                              //这就如同等差中项,是为了找到x/2之前的一个加数,下面的“x-i”是另一个加数。
    {
        f = 1;
        for (j = 2; j <= sqrt(i); j++)
        if (i % j == 0) f = 0;
        if (f){
            for (j = 2; j < sqrt(x - i); j++)
            if ((x - i) % j == 0) f = 0;//判断另一个加数是否为素数。
            if (f){
                count++;
            
                printf_s("%d=%d+%d\n",x,i,x-i );
            }
        }//这个问题我给你改了一下程序,自己对照着看看,如果不明白再问。
    }
    printf("共%d种可能。\n", count);
}

int main()
{
    int x;

    do{
        scanf_s("%d", &x);
    } while (x % 2 || x < 3);//这个和前面的“if(f)”是一样的道理。
                            //二进制中,表达式真则值为1,假为0;循环和选择的判断条件就是根据这个来的;
    P(x);                  //括号内表达式值为0,表示判断条件不成立;只要是其他非0值,都表示其成立。
    return 0;             //这个while的判断条件是指x%2与x<3只要有一个成立,那么就继续循环;也就是除非你
                         //输入一个大于三的偶数,否则无限循环。
}

//有不明白的可以继续疑问,尽量解决。
2014-12-23 00:20
mohun
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:49
专家分:125
注 册:2014-12-22
收藏
得分:0 
抱歉   最后一句是:有不明白的可以继续提问,尽量解决。
2014-12-23 00:22
kang7716
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-12-22
收藏
得分:0 
回复 4楼 mohun
然后,再问您一个问题:自己是计算机专业大一的学生,刚开始接触这些东西,感觉自己学得很不好,不明白老师讲的是什么,要打代码的时候,脑子里完全是一团糟,不知该怎么办?就像现在,我还连一个“排序”的程序都不能快速清晰地写出来,所以,向您请教一下学习的方法!
2014-12-24 08:00
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
多写 多练  要多多上机实践  不要纸上谈兵

DO IT YOURSELF !
2014-12-24 09:11
mohun
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:49
专家分:125
注 册:2014-12-22
收藏
得分:0 
学编程语言就和学英语、法语等外语一样,要多读多写。初接触时,你的目的就是熟悉基本语法与基本编程思想,如果真的吃力的话,就没必要想的太多,照着例题写和仿写就行了,之后自己稍稍总结一下它的思想,积累一些经典算法,“熟读唐诗三百首,不会作诗也会吟”,就是这个道理。还有,如果有条件,一定要多和老师交流,因为初学时有很多细节你是很难注意到并且搞懂的。
学习一门语言,最忌讳浮躁,一定要坚持下去,当初我班的同学,计算机基础良莠不齐,但是坚持下去的后来都成了别人眼中的“高手”,所以,一定要持之以恒!
总而言之,只要自己努力,再加上合理利用身边的资源,你就是未来的高手。
最后,预祝你学习顺利,早日有所成就。
2014-12-24 12:31
kang7716
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-12-22
收藏
得分:0 
回复 6楼 wp231957
谢谢您的指导
2014-12-24 19:47
kang7716
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-12-22
收藏
得分:0 
回复 7楼 mohun
非常感谢您的耐心指导,以后有问题可能还要麻烦你哦!
2014-12-24 19:48
快速回复:(哥德巴赫猜想)求各位解释一下程序。
数据加载中...
 
   



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

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