题目定义两个偶数之间的距离为:两个数之间的素数的个数,
测试数据
第一行为偶数的个数 3
第二行为第一个偶数 4
第三行为第二个偶数 6
第四行为第三个偶数 12
三个偶数升序排列,三个数两两之间的距离为6
下面是我的代码,水平有限,
package rc4test;
import java.io.*;
import java.util.*;
class Juli {
public static void main(String[] args) {
int a[] = new int[10];
int b = 0;
int count = 0;
Scanner cin = new Scanner(System.in);
b = cin.nextInt();
if (cin.hasNextInt()) {
for (int i = 0; i < b; i++) {
a[i] = cin.nextInt();
}
}
// for (int m = 0; m < 3; m++) {
// System.out.println("sdasd"+a[m]);
// }
for (int x = 0; x < (b - 1); x++)// 迭代距离和
{
for (int y = x + 1; y < b; y++) {
count += countNum(a[x], a[y]);
}
}
System.out.println(count);
}
public static int countNum(int b, int c) {// 计算两个数之间的距离
int count = 0;
boolean flag = false;
for (int i = b + 1; i < c; i++) {
if (isPrime(i))// 如果是质数
{
count++;
}
}
//System.out.println(count);
return count;
}
public static boolean isPrime(int a) {
boolean flag = true;
if (a < 2) {// 素数不小于2
return false;
} else {
for (int i = 2; i <= Math.sqrt(a); i++) {
if (a % i == 0) {// 若能被整除,则说明不是素数,返回false
flag = false;
break;// 跳出循环
}
}
}
return flag;
}
}
水平有限。。。