java语言 n为偶数,将n分解为2个素数,并返回这2个素数.

java语言 n为偶数,将n分解为2个素数,并返回这2个素数.,第1张

import java.util.Scanner

public class Test {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in)

        System.out.println("请输入一个不小于4的数")

        int num = scanner.nextInt()

        scanner.close()

        if (num >= 4) { // 不小于4

            for (int i = 2 i <= num / 2 i++) {

  者迟              if (isPrime(i) && (isPrime(num - i))) { // i 和 num-i 都是素数

        亩神            System.out.println(num + "首耐李可以分解素数 " + i + "和素数 " + (num - i))

                }

            }

        } else {

            System.out.println("输入有误")

        }

    }

    // 简单的判断素数的方法

    private static boolean isPrime(int num) {

        if (num < 2) {

            return false

        }

        double sqrt = Math.sqrt(num)

        for (int i = 2 i <= sqrt i++) {

            if (num % i == 0) {

                return false

            }

        }

        return true

    }

}

import java.util.Scanner

public 告汪class TestDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

while(true){

System.out.println("请输入一个大于2的偶数:")

Scanner in = new Scanner(System.in)

int inNum = in.nextInt()

for(int i =2i < inNumi++){

int j = inNum - i

if(isPrime(i) && isPrime(j)){

System.out.println("偶数:"+inNum+",可以表示为两个素数的和:"+inNum+"="+i+"+"+j)

break

}

}

}

}

//判断是不是素数

public static boolean isPrime(int a) {

boolean flag = true

if (a < 2) 型迹{// 素数不小于2

return false

} else {

for (int i = 2 i <= Math.sqrt(a) i++) {

if (a % i == 0) {// 若能被整除,则说明不是素数,返卜友并回false

flag = false

break// 跳出循环

}

}

}

return flag

}

}

public class Fenjie {

public static void main(String[] args) {

//100-120偶数

for(int i=100 i<=120i=i+2){

for(int j = 2 j<i j++){

//拆茄纯州成2个质数裤消相加

int k = i-j

//最小质数颤蔽是2

if(Primenumber(j) == 1 &&Primenumber(k) ==1 &&k!=1 ){

System.out.print( i + " = " + j + " + " + k + " ")

}

}

System.out.println()

}

}

public static int Primenumber(int number){

//素数(质数)判断

int isFlag = 1 //默认质数

for(int i=2i<=Math.sqrt(number)i++){

if(number %i == 0){

isFlag=0

break

}

}

return isFlag

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12272402.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存