import java.util.Scanner;
//题目:一个偶数总能表示为两个素数之和。
public class EvenDecomposition {
//判断一个数是否为素数
static boolean judgePrimeNumber(int n)
{
boolean flag=false;//素数:true 偶数:false
if(n<=1) return false;//1不是素数
for(int i=2;i<=n;i++)
{
if(n%i==0)
{
if(i>1&&i<n) break;//若一个数能被1和自身之外的数整除,则不是素数
if(n==i)
{
flag=true;
}
}
}
return flag;
}
//将一个偶数分解
static int[] decomposition(int num)
{
int arr[]=new int[2];//存放分解后两个素数
for(int i=1;i<num;i++)
{
if(judgePrimeNumber(i)==true)//i是素数
{
for(int j=i;j<num;j++)
{
if(judgePrimeNumber(j)==true)//j是素数
{
if(num==i+j)//该数等于两素数之和
{
arr[0]=i;
arr[1]=j;
}
}
else continue;
}
}
else continue;
}
return arr;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[]=new int[2];//存放分解后两个素数
System.out.print("输入一个偶数:");
Scanner input=new Scanner(System.in);
int num=input.nextInt();
if(num%2==0)//偶数
{
arr=decomposition(num);
System.out.print(num+"="+arr[0]+"+"+arr[1]);
}
else System.out.print("Error input!");
input.close();
//System.out.print(judgePrimeNumber(6));
}
}
JAVA经典50题(44)
最新推荐文章于 2024-07-10 21:37:49 发布