40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和

//1、输入一个偶数。判断是否为偶数
//2、若是,求出小于其的所有素数
//3、将它们求和
//4、验证是否满足哥德巴赫猜想

#include<iostream>
#include<cmath>
using namespace std;
int Sushu(int);

int main()
{
    int n,k,q;
    int a[1000];
    begin:
    cout<<"please input an even number(偶数):"<<endl;
    cin>>n;

    for(int p=0;p<1000;p++)
    {
        a[p]=0;
    }

    if(n%2!=0)//判断是否为偶数
    {
        cout<<"wrong,please try again!";
        goto begin;
    }else
    {
        if(n==2)
        {
            cout<<"1"<<" "<<"1"<<endl;
            cout<<"OMG,偶数"<<n<<"符合哥德巴赫猜想!!"<<endl;
        }else
        {
            for(int i=3;i<n;i++)//把到n为止的素数全部存入数组
            {
                if(Sushu(i))
                {
                    a[i-1]=i;
                }
            }
            for(int j=0;j<100;j++)
            {
                a[0]=1;
                a[1]=2;
                for(k=j+1;k<100;k++)
                {
                    q=a[j]+a[k];
                    if(q==n)
                    {
                        cout<<a[j]<<" "<<a[k]<<endl;
                        cout<<"OMG,偶数"<<n<<"符合哥德巴赫猜想!!"<<endl;
                    }
                }
            }
        }
    }
    return 0;
}

int Sushu(int index)
{
    //int y=sqrt(index);
    int z;
    for(int m=2;m<index;m++)
    {
        if(index%m==0)
        {
            z=0;
            break;//没有break这个程序就是错的
        }else
        {
            z=index;
        }
    }
    return z;
}

40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和

时间: 2024-10-28 21:27:12

40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和的相关文章

哥德巴赫猜想: 任何一个大于2的偶数都可以拆分为两个素数的和

打印出小于2000的偶数拆分情况: var goldbach = function (n){ for(var i = 2;i<n; i++){ if(isPrime(i) && isPrime(n-i)){return {n1:i,n2:(n-i)} ;} } return undefined; } var isPrime = function (n){ for(var i = 2; i< n; i++){if(n%i == 0){return false;}} return

JAVA基础:一个大于2的偶数始终可以分解成多个质数相乘

package codeCompliation; import java.util.Scanner; public class isPrime {   /**  * 判断一个数是否是质数  * @param number  * @return  */ public static boolean isPrime(int number){  int num=0;  for(int i = 1;i<=number;i++){   if(number%i==0){    num++;   }  }  i

循环-04. 验证“哥德巴赫猜想”

循环-04. 验证“哥德巴赫猜想”(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 徐镜春(浙江大学) 数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和.比如:24=5+19,其中5和19都是素数.本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和. 输入格式: 输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N. 输出格式: 在一行中按照格式

用C语言来验证哥德巴赫猜想(定义的是int型)

哥德巴赫猜想: 如果任意一个大于6的偶数都可以写成两个素数之和.就将其称为符合哥德巴赫猜想. #include<stdio.h> #include<math.h> /// <summary> /// 判断一个数是否是素数 /// </summary> /// <param name="intNum">要判断的数</param> /// <returns>如果是,返回true,否则,返回false<

【算法】验证哥德巴赫猜想

问题来源 Timus Online Judge 网站上有这么一道题目:1356. Something Easier.这道题目的输入是一组  2 到 109 之间整数,对于每个输入的整数,要求用最少个数的素数的和来表示.这道题目的时间限制是 1 秒. 问题解答 我们知道著名的哥德巴赫猜想是: 任何一个充分大的偶数都可以表示为两个素数之和 于是我们有以下的 C 语言程序(1356.c): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

Python验证哥德巴赫猜想

今天看到百度知道有人问如何验证1000以内的数符合哥德巴赫猜想,就写了一个 感觉超过10000时有点慢啊,和java比起来效率差了点,希望高手能给优化下 #!/usr/bin/env python __author__ = '淮南霏霏' """ 脚本编写环境python 3.4.2 哥德巴赫猜想 简单验证 """ import math class Goldbach: """ 哥德巴赫猜想:任一大于2的偶数都可写成两

在c#用控制语句完成哥德巴赫猜想(一个大于二的偶数一定是两个质数之和)

思路:首先分析判断,整个程序都是重复输入数字,所以整个过程都是在一个死循环语句中,这是就可以用一个whil语句,条件为true:其次对用户输入的数字input进行判断,去除小于等于2和大于2的基数,剩下的数字就能满足条件了:再然后找出1-input之间的的一个质数i:这是定义一个k,k等于input-i:再判断i,如果i也是质数,那就可以输出input=i+k:最终完成计算.(当编码太多时,最好创建区间来分开,这易于分析和找错) 代码如下: while (true) { Console.Writ

编程验证哥德巴赫猜想

1.什么是哥德巴赫猜想 在1742年给欧拉的信中哥德巴赫提出了以下猜想:任一大于2的整数都可写成三个质数之和.因现今数学界已经不使用"1也是素数"这个约定,原初猜想的现代陈述为:任一大于5的整数都可写成三个质数之和.欧拉在回信中也提出另一等价版本,即任一大于2的偶数都可写成两个质数之和.今日常见的猜想陈述为欧拉的版本.把命题"任一充分大的偶数都可以表示成为一个素因子个数不超过a个的数与另一个素因子不超过b个的数之和"记作"a+b".1966年陈景

验证哥德巴赫猜想,每个大于等于4的偶数都可以表示成2个素数之和

验证哥德巴赫猜想,每个大于等于4的偶数都可以表示成2个素数之和. 1 #define _CRT_SECURE_NO_WARNINGS 2 3 #include<stdio.h> 4 #include<stdlib.h> 5 6 int isou(int num)//1代表偶数,0代表奇数 7 { 8 if (num % 2 == 0) 9 { 10 return 1; 11 } 12 else 13 { 14 return 0; 15 } 16 } 17 18 int sushu(