您的位置:首页 > 其它

搜狗2017校招笔试:偶数距离之和(为这两个偶数之间质数个数)

2016-09-16 13:24 316 查看
题目:定义两个大于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
;
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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: