package lan1;
/*问题描述
差为2的两个素数被称为孪生素数对,例如3和5, 11和13.
给定一个区间,请输出区间内所有的孪生素数对.
输入格式
两个正整数a,b,其中a<b,以空格分开
输出格式
区间[a,b]内的所有孪生素数对,按从小到大顺序。每行一个素数对,其中小的在前,大的在后,以空格分开。
如果区间内没有素数对的话,输出-1.
样例输入
2 15
样例输出
3 5
5 7
11 13
样例输入
14 18
样例输出
-1*/
import java.util.*;
public class Main1 {
public static int a, b;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
a = sc.nextInt();
b = sc.nextInt();
boolean flag;
//数组下标
int index=0;
int[] array=new int[b-a+1];
for (int i = a; i <= b; i++) {
flag = false;
if(i%2==0)
flag=true;
for (int j = 3; j <=Math.sqrt(i)+1; j+=2) {
if (i % j == 0 ) {
flag = true;
//剪枝
break;
}
}
if (!flag) {
array[index++]=i;
}
}
//记录蛮生素数
int sum=0;
for(int i=1;i<index;i++){
if(array[i]-array[i-1]==2 && array[i]>=2 && array[i-1]>2){
sum++;
System.out.println(array[i-1]+" "+array[i]);
}
}
if(sum==0){
System.out.println(-1);
}
}
}
蛮生素数
最新推荐文章于 2023-01-26 16:51:10 发布