zoukankan      html  css  js  c++  java
  • 1968: C/C++经典程序训练6歌德巴赫猜想的证明

    1968: C/C++经典程序训练6---歌德巴赫猜想的证明

    Time Limit: 1 Sec  Memory Limit: 64 MB
    Submit: 1165  Solved: 499
    [Submit][Status][Web Board]

    Description

    写一个函数gotbaha, 验证“每个不小于6的偶数都是两个奇素数之和”,输入一个不小于6的偶数n,找出两个素数,使它们的和为n。

    Input

    输入一个不小于6的偶数n

    Output

    找出两个为素数,使它们的和为n。

    Sample Input

    80
    

    Sample Output

    80=7+73

    HINT

     主函数已给定如下,提交时不需要包含下述主函数


    /*  C代码  */


    int main()


    {


        int n;


        int gotbaha(int);


        int prime(int);


        scanf("%d",&n);


        gotbaha(n);


        return 0;


    }



    /*  C++代码  */


    int main()


    {


        int n;


        int gotbaha(int);


        int prime(int);


        cin>>n;


        gotbaha(n);


        return 0;


    }

    #include<stdio.h>
    #include<math.h>
    int prime(int n)
    {
        int k,i;
        k=sqrt(n);
        for(i=2;i<=k;i++)
            if(n%i==0)
                break;
        if(i==k+1)
            return 1;
        else
            return 0;
    }
    int gotbaha(int n)
    {
        int prime(int n);
        int a,b;
        for(a=7;a<n;a++)
        {
            b=n-a;//设置b=n-a将b用a表示,这样对范围内的b不再逐一验证,不用再单独为b设置循环,循环次数下降//
            if(prime(a)&&prime(b))
            {
                printf("%d=%d+%d",n,a,b);
                break;
            }
        }
    }
    int main()
    
    
    {
    
    
        int n;
    
    
        int gotbaha(int);
    
    
        int prime(int);
    
    
        scanf("%d",&n);
    
    
        gotbaha(n);
    
    
        return 0;
    
    
    }
    

      

  • 相关阅读:
    [CTSC2018]暴力写挂
    【bzoj 2870】 最长道路tree
    [CTSC2010]珠宝商
    [JXOI2018]守卫
    [JXOI2018]排序问题
    [AHOI2014/JSOI2014]骑士游戏
    [SNOI2017]遗失的答案
    【LGP5437】【XR-2】约定
    【LGP5349】幂
    hdu-2688 Rotate---树状数组+模拟
  • 原文地址:https://www.cnblogs.com/mjn1/p/8443205.html
Copyright © 2011-2022 走看看