A1034. 孪生素数对
问题描述
差为2的两个素数被称为孪生素数对,例如3和5, 11和13.
给定一个区间,请输出区间内所有的孪生素数对.
给定一个区间,请输出区间内所有的孪生素数对.
输入格式
两个正整数a,b,其中a<b,以空格分开
输出格式
区间[a,b]内的所有孪生素数对,按从小到大顺序。每行一个素数对,其中小的在前,大的在后,以空格分开。
如果区间内没有素数对的话,输出-1.
如果区间内没有素数对的话,输出-1.
样例输入
2 15
样例输出
3 5
5 7
11 13
5 7
11 13
样例输入
14 18
样例输出
-1
package www.tsinsen.com; import java.util.ArrayList; import java.util.Scanner; public class A1034 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int a=scan.nextInt(); int b=scan.nextInt(); ArrayList<Integer> list=new ArrayList<Integer>(); for(int i=a;i<=b;i++) { if(judge(i)) { list.add(i); } } int flag=0; for(int i=0;i<list.size()-1;i++) { if(list.get(i)+2==list.get(i+1)) { flag=1; System.out.println(list.get(i)+" "+list.get(i+1)); } } if(flag==0) { System.out.println(-1); } } public static boolean judge(int n) { if(n==2) { return true; } for(int i=2;i<=Math.sqrt(n);i++) { if(n%i==0) { return false; } } return true; } }