给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000. 如,输入为10,程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
import java.util.Scanner;
public class TwoPrimeSum
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int a=sc.nextInt();
System.out.println(count(a));
}
static int count(int num)
{
int length=num/2+1;
int max=0;
for (int i = 1; i < length; i++)
{
if(IsPrime(i)&&IsPrime(num-i))
{
max++;
}
}
return max;
}
static boolean IsPrime(int num)
{
boolean ret = true;
int ubound =(int) (Math.sqrt(num)+1); //开平方加1
for (int i = 2; i < ubound; i++)
{
if (num % i == 0)
{
ret = false;
break;
}
}
return ret;
}
}