使用接口来验证哥德巴赫猜想

本文介绍了一种编程挑战,两人合作解决歌德巴赫猜想问题:输入大于6的偶数,将其分解为两个质数之和。通过Mathod类实现质数判断和偶数拆分功能,展示了合作解决问题的编程过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*

验证歌德巴赫猜想:
输入一个大于 6 的偶数,
请输出这个偶数能被分解为哪两个质数的和。
 如 10=3+7 12=5+7
 要求
    两个人一组合作完成。
    一个人负责把一个整数 n 拆分成两个整数的和,
    另一个人负责写一个函 数,判断某一个整数 a 是否是质数

*/

//创建包
package classes;
//导包
import java.util.Scanner;
//创建类
class Test12{
    //main方法
    public static void main(String[] args){
        //创建Scanner类 用于用户输入
        Scanner sc = new Scanner(System.in);
        //输出提示语句
        System.out.println(" 撒~给出你的数字 ");
        //定义Sanner类对象的变量数据类型
        int n = sc.nextInt();
        
        //创建方法类对象
        Mathod ma = new Mathod();
        //使用定义方法时的返回值类型 来接受方法返回的结果
        int m = ma.even(n);
    
        //对m进行判断
        //如果m=0那就说明 不是大于6的偶数
        if(m==0)System.out.println(" 输入有误 ");
        //否则就调用mathod类中判断质数的方法
        //参数传递m
        else {
            //建立for循环将需要传递的参数 传递给mathod类中的判断质数的方法
            for(int i = 2; i<m/2 ; i++){
                //进行判断 因为需要判断两个数字是不是都是质数 
                //所以 将两个需要判断的数字都需要调用判断质数的方法
                //又因为 这两个数字相加等于用户输入的数字 
                //那么第一个参数 就是 循环变量 第二个参数就是用户输入的数字减去循环变量
                if(ma.promes(i) && ma.promes(m-i)){
                //当两个都为true时布尔表达式才会成立
                //如果成立那么就输出 i 和 m-i
                    //输出语句
                    System.out.println(m+" 是 "+i+" 和 "+(m-i)+" 两个质数的和 ");
                }
            }
        }
        
    }
}

//定义接口
interface MathodTool{
    boolean promes(int n );
}

//定义方法类
class Mathod implements MathodTool{
    //定义判断这个数是不是大于6的偶数
    //如果是那么返回这个数字 不是就是返回0 
    public int even(int n ){
        if(n>6 && n%2==0) return n;
        else return 0 ;
    }
    //定义一个方法 用来判断这个数字是不是质数
    //方法的返回值为boolean类型 
    public boolean promes(int n ){
        //建立循环来判断传入的参数是不是质数
        for(int i = 2; i<n/2 ; i++){
            //如果用户输入的数字除以循环变量i 等于0 
            //那么这个数就不是质数 返回false 让循环继续执行
            //如果整个循环结束后都没有返回false
            //那么这数字就是质数
            if(n%i==0){
                return false;
            }
        }
        return true ;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值