【遇见时光】笔试-偶数最大距离-java

题目描述:

定义两个大于2的偶数之间的距离,为这两个数之间质数的个数。从小到大输入n个大于2的偶数,输出所有数两两之间距离的总和(应该有n*(n-1)/2个距离,输出总和就好)。
输入
第一行是输入偶数的个数,最小为2,最大可能到几万。之后每行为一个偶数,最小是4,最大可能是几百万,不重复的升序排列。
输出
输入数据两两间距离的总和,这应该是一个不小于0的整数。

样例输入
3
4
6
12
样例输出
6
本人代码:不考虑效率,赛码网71%通过,提示超时;欢迎指正
 1 package test;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Prime {
 6     public static boolean isPrime(int n) {   
 7            for(int i = 2; i <= Math.sqrt(n);i++) {//程序默认2是素数,当i=2时,循环不执行
 8                if(n % i == 0) {
 9                  return false;
10                }
11            }
12            return true;
13      }
14     public static int count(int[] a){
15         int count=0;
16         for(int i=0;i<a.length;i++){
17             for(int j=i+1;j<a.length;j++){
18                 for(int k=a[i];k<=a[j];k++){
19                     if(isPrime(k)){
20                         count++;
21                     }
22                 }
23             }
24         }
25         return count;
26     }
27 
28     public static void main(String[] args) {
29         // TODO Auto-generated method stub
30         Scanner in =new Scanner(System.in);
31         int num = in.nextInt();
32         int[] a= new int[num];
33         for(int i=0;i<num;i++){
34             a[i]=in.nextInt();
35         }
36         System.out.println(count(a));
37 
38     }
39 
40 }

 

posted @ 2016-09-12 17:11  _遇见时光  阅读(255)  评论(0编辑  收藏  举报