java实验作业中碰到了这道题,刚开始压根没有明白什么是素数对,网上的解释也都是模糊不清,经过了好一会的查询
所谓的 素数对就是相差为2的素数,即后一项素数减去前一项素数等于2,明白这个,代码就好写了。
package prc01;
import java.util.Scanner;
public class isSSPro {
static boolean isSu(int x) {//判断是否为素数,是返回true,不是返回false
boolean isPrime = true;
if (x == 1) {
isPrime = false;
}
for (int i = 2; i < x; i++) {
if (x % i == 0) {
isPrime = false;
break;
}
}
return isPrime;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
int a1 = 1;
int a;
int state = 0;
System.out.println("请输入两个数:");
Scanner ss = new Scanner(System.in);
int x = ss.nextInt();
Scanner ss1 = new Scanner(System.in);
int y = ss1.nextInt();
for (int i = x; i < y; i++) {
if (isSu(i)) {
a = i;
if (a - a1 == 2) {
state++;
System.out.print(" (" + a1 + "," + a + ")");
} else {
a1 = a;
}
if (state % 5 == 0) {
System.out.print("\n");
}
}
}
}
}