输出描述:
对应每个整数,输出其拆成不同素数和的个数,每个结果占一行。
输入例子:
30
26
20
输出例子:
3
2
2
思路:
(1)找出该整数可以拆分的所有素数;
(2)利用双指针找出符合条件的两个不同的素数,并利用count计数。
import java.util.LinkedList;
import java.util.List;
public class Count {
public static void main(String[] args){
for (int i = 0; i<arg.length; i++){
// 要操作的数字
int num = Integer.parseInt(args[i]);
// 放要求和的素数的链表
List<Integer> list = new LinkedList();
// 链表中素数的下标
int sonIndex = 0;
// 找素数
for (int x = 2; x < num; x++){
boolean flag = true;
for (int j = 2 ; j < x ; j++){
if (x % j == 0){
flag = false;
break;
}
}
if (flag){
list.add(x);
sonIndex++;
}
}
// 调方法
int result = sum(list,num);
System.out.println(result);
}
}
public static int sum(List<Integer> num, int target) {
int p1 ;
int p2 ;
int count = 0;
for (p1 = 0 ; p1 < num.size() ; p1++){
for (p2 = num.size()-1 ; p2 > p1; p2--){
if ( num.get(p1) + num.get(p2) == target){
count++;
}
}
}
return count;
}
}