验证歌德巴赫的猜想

歌德巴赫猜想的近似证明 歌德巴赫猜想是说任何一个大于2的偶数都能表示为两个素数之和,
请编写一个Java程序,验证1~100内歌德巴赫猜想的正确性。

自己写的一个小程序,代码可能不够简洁,如有错误,请大家指正一下:

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;

/**
 * 歌德巴赫猜想的近似证明 歌德巴赫猜想是说任何一个大于2的偶数都能表示为两个素数之和,
 * 请编写一个Java程序,验证1~100内歌德巴赫猜想的正确性。
 * @author scywxx
 * @version 1.0
 *
 */
public class Test9 {

    public static void main(String[] args) {
        //1 任何一个大于2的偶数都能表示为两个素数之和
        for(int i = 4;i<=100;i+=2)
       {
            List<Integer> list=method2(i);
            method1(list,i);

        }

    }
    /**
     * 统计这个偶数的所有素数按顺序保存在一个List中
     * 质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除数
     * @param m  表示这个整数
     */
    public static List<Integer> method2(int m)
    {
        List<Integer> list=new ArrayList<Integer>();
        for(int i =2;i<=m-1;i++)//判断m这个偶数中2~m-1中那些是素数
        {
            //判断 i 能否被2到i-1整除
            int j;
            for(j=2;j<=i-1;j++)
            {
                if(i % j == 0)
                {
                    break;
                }
            }
            //判断循环次数等于i,是素数
            if(j == i)
            {
                //把素数保存在List中
                list.add(i);

            }
        }
        System.out.print(m+"这个偶数中的素数有:");
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i)+" ");
        }
        System.out.println();

        return list;

    }
    /**
     * 算出任何一个大于2的偶数都能表示为两个素数之和
     * 表示出来
     * @param list  表示存储这个偶数的所有素数的集合
     * @param m   表示这个偶数
     */
    public static void method1(List<Integer> list,int m)
    {
        for(int j =1 ;j<=list.size()-1;j++)//控制相隔的距离      每次计算的是素数与素数相隔的距离
        {
            for(int n = 0;n<list.size();n++)
            {
                //判断是否越界
                if(n+j >= list.size())
                {
                    break;
                }
                //判断一下素数本身相加是否等于这个偶数
                if(list.get(n)*2 == m)
                {
                    System.out.println(m+"这个偶数可以表示为:"+list.get(n)+"和"+list.get(n)+"相加");

                }
                if(list.get(n+j) == m)
                {
                    System.out.println(m+"这个偶数可以表示为:"+list.get(n)+"和"+list.get(n)+"相加");
                }
                //将相隔的距离的素数相加是否等于这个偶数
                if(list.get(n)+list.get(n+j)== m)
                {
                    System.out.println(m+"这个偶数可以表示为:"+list.get(n)+"和"+list.get(n+j)+"相加");

                }

            }
        }
    }

}

运行的结果:

时间: 2024-10-18 01:57:32

验证歌德巴赫的猜想的相关文章

验证角谷猜想(hd1279)

验证角谷猜想 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7196    Accepted Submission(s): 3700 Problem Description 数论中有许多猜想尚未解决,其中有一个被称为“角谷猜想”的问题,该问题在五.六十年代的美国多个著名高校中曾风行一时,这个问题是这样描述的:任何一个大于一的自然数,如果

hdu 1279 验证角谷猜想(简单的模拟)

Problem Description 数论中有许多猜想尚未解决,其中有一个被称为“角谷猜想”的问题,该问题在五.六十年代的美国多个著名高校中曾风行一时,这个问题是这样描述的:任何一个大于一的自然数,如果是奇数,则乘以三再加一:如果是偶数,则除以二:得出的结果继续按照前面的规则进行运算,最后必定得到一.现在请你编写一个程序验证他的正确性. Input 本题有多个测试数据组,第一行为测试数据组数N,接着是N行的正整数. Output 输出验证“角谷猜想”过程中的奇数,最后得到的1不用输出:每个测试

杭电 HDU 1279 验证角谷猜想

验证角谷猜想 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6653    Accepted Submission(s): 3417 Problem Description 数论中有许多猜想尚未解决,其中有一个被称为"角谷猜想"的问题,该问题在五.六十年代的美国多个著名高校中曾风行一时,这个问题是这样描述的:任何一个大于一的

HDU-1279 验证角谷猜想

题目链接:点我点我点我 原本以为第一遍会TLE的,虽然复杂度是O(N) 结果发现是自己想多了. 注意0 1输入,屁股别加空格就好了 Problem Description 数论中有许多猜想尚未解决,其中有一个被称为"角谷猜想"的问题,该问题在五.六十年代的美国多个著名高校中曾风行一时,这个问题是这样描述的:任何一个大于一的自然数,如果是奇数,则乘以三再加一:如果是偶数,则除以二:得出的结果继续按照前面的规则进行运算,最后必定得到一.现在请你编写一个程序验证他的正确性. Input 本题

题解报告:hdu 1279 验证角谷猜想

Problem Description 数论中有许多猜想尚未解决,其中有一个被称为"角谷猜想"的问题,该问题在五.六十年代的美国多个著名高校中曾风行一时,这个问题是这样描述的:任何一个大于一的自然数,如果是奇数,则乘以三再加一:如果是偶数,则除以二:得出的结果继续按照前面的规则进行运算,最后必定得到一.现在请你编写一个程序验证他的正确性. Input 本题有多个测试数据组,第一行为测试数据组数N,接着是N行的正整数. Output 输出验证"角谷猜想"过程中的奇数,

HDU ACM 1279 验证角谷猜想

水题 #include<iostream> using namespace std; int main() { int n,T; bool flag; cin>>T; while(T--) { cin>>n; flag=false; while(n>1) { if(n%2==0) n/=2; else { if(!flag) { cout<<n; flag=true; } else cout<<" "<<n;

如何快速的获得url地址中参数名和参数值(在看PHP手册的时候无意间看见这两个函数,猜想能不能搭配使用。)

今天在看手册的时候,无意间看到这两个内置函数parse_url和parse_str.看到他们的用法后,我突然想到能不能利用这两个函数来获得url地址中的参数.为了验证我的猜想,我就以如下url为例子:https://www.baidu.com/baidu?wd=百度&tn=monline_4_dg&ie=utf-8 代码如下: $url = 'https://www.baidu.com/baidu?wd=百度&tn=monline_4_dg&ie=utf-8'; $url_

Euler猜想

这是从http://duodaa.com/blog/index.php/archives/538/截得图,以下是代码 package math; import java.math.BigDecimal; import java.util.function.BiConsumer; public class TestEuler { public static void main(String[] args) { boolean flg=true; for(long x=1;flg;x++){ for

[转]100个经典C语言程序(益智类问题)

目录: 1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事犯 13.该存多少钱 14.怎样存钱利最大 15.捕鱼和分鱼 16.出售金鱼 1.7 分数四则运算 17.平分七筐鱼 18.有限5位数 19. 8 除不尽的数 21.4位反序数 22.求车速 23.阿姆斯特朗数 24.完全数 26.亲密数 27.自守数 28.回文数 29.求具有abcd=(ab+c