| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3227 人关注过本帖
标题:哥德巴赫猜想的验证问题
只看楼主 加入收藏
hwpayg
Rank: 2
等 级:论坛游民
帖 子:108
专家分:25
注 册:2008-4-3
结帖率:100%
收藏
 问题点数:0 回复次数:6 
哥德巴赫猜想的验证问题
在6-20之间的所有偶数验证哥德巴赫猜想:任何一个大于6的偶数可以分解为两个素数之和。
我的程序是把6-20之间的偶数用表达是表示出来,
如果我想最终输出的是如果6-20之间的所有偶数都分解,则返回true,否则返回false,该怎么做
public class TestPri
{
    static boolean flag=false;
    public static void main(String [] args)
    {
        for(int i=6;i<=20;i+=2)
        {
            flag=false;
outer1:        for(int a1=2;a1<=i-a1;a1++)
            {
                if(isPrime(a1)&&isPrime(i-a1))
                {
                    System.out.println(i+"="+a1+"+"+(i-a1));
                    flag=true;
                }
                if(flag==true)
                    break outer1;
            }            
        }        
    }
    static boolean isPrime(int i)
    {
        for(int k=2;k<i;k++)
        {
            if(i%k==0)
                return false;
        }
        return true;        
    }
    public TestPri()
    {
        
    }   
}
搜索更多相关主题的帖子: 哥德巴赫猜想 验证 
2008-11-08 17:00
zacom
Rank: 2
等 级:论坛游民
威 望:2
帖 子:381
专家分:15
注 册:2007-9-15
收藏
得分:0 
不明白。。。。

没有最好只有更好
2008-11-08 18:50
learnerboy
Rank: 2
等 级:论坛游民
帖 子:246
专家分:22
注 册:2007-11-11
收藏
得分:0 
乱写的,不知道是不是你说的那样.............
public class TestPri {
    public static void main(String[] args){
        IsPrime isprime=new IsPrime(6,20);
        isprime.judgeMent();
        System.out.println(isprime.flag);
    }
}

class IsPrime{
    int i,j;
    boolean flag=true;
    public IsPrime(int i,int j) {
        this.i=i;
        this.j=j;
    }
    public boolean judgeMent(){
        for(int x=i;x<=j;x+=2){
            for(int y=2;y<x-y;y++){
                if(this.isPrime(y)||this.isPrime(x-y))
                    System.out.println(x+"可分解为"+y+"+"+(x-y));
            }
        }
        return flag;
    }
    public boolean isPrime(int i){
        for(int a=2;a<i;a++){
            if(i%a==0)
                return false;
        }
        return true;
    }
}
2008-11-08 20:12
hwpayg
Rank: 2
等 级:论坛游民
帖 子:108
专家分:25
注 册:2008-4-3
收藏
得分:0 
上面的程序如果是用flag来判断是否正确的话,flag就已经定义为true了,肯定返回true,如果定义为false也会返回false.你的flag已经预先定义好了,而且输出的也是预先定义好的值,并没有进行过判断。
我的意思是判断如果6-20之间的数全部能分解为比它小的2个素数之和,则返回true,否则返回false.
2008-11-09 09:57
kaizissl
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-11-7
收藏
得分:0 
偶是是不明白..

一度教育www.. 8个月专攻JAVA,入训签订就业合同
2008-11-10 15:13
zhoutao_1001
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-9-1
收藏
得分:0 
为什么要做for(int a=2;a<i;a++)
            if(i%a==0)
这样呢?可以直接if(i%2==0)吗?
2008-11-14 21:40
Bonne
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-6-14
收藏
得分:0 
不明白!
2016-06-14 11:22
快速回复:哥德巴赫猜想的验证问题
数据加载中...
 
   



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

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