题目:定义两个大于2的偶数之间的距离,为这两个数之间质数的个数,从小到大输入n个大于2的偶数,输出所有两两之间距离的总和。
样列输入: 第一行代表输入偶数的个数
3
4 6 12
样例输出:
6
/*
* 搜狗:求一个数组的距离之和,数组偶数为大于2的偶数,从小到大。a[i]和a[j]之间的距离是其质数个数
*/
import java.util.Scanner;
public class GetDistSumOfArray{
public static void main(String[] args){
int sum = 0 ;
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
int[] data = new int[n];
for (int i = 0; i < n; i++) {
data[i] = sc.nextInt();
}
for(int j=0;j<n-1;j++){
for(int k=j+1;k<n;k++)
{
sum += count(data[j], data[k]);
}
}
System.out.println(sum);
}
}
public static boolean isPrime(int a){
boolean flag = true;
if(a<2){
return false;
}else{
for(int i=2;i<a;i++){
if(a%i==0){
flag = false;
break;
}
}
}
return flag;
}
public static int count(int a,int b) {
int count =0;
for(int i=a+1;i<b;i++){
if(isPrime(i))
count++;
}
System.out.println(a +"和"+b+"之间质数个数为:"+count); //用来测试
return count;
}
}