找双胞胎素数

Description
素数也叫质数。如果两个素数的差值为2,则称该两个素数为双胞胎素数。给定任意两个正整数(非素数,大小关系不定),找出这两个正整数之间的所有双胞胎素数。
注:若三个连续的质数,相邻两个都相差2的,叫三生质数。三生质数只有3,5,7一种情况。本题给定数据中不含这种情况,即可以不考虑三生质数情况。
Input
有若干组数据。每组数据由两个正整数组成。
Output
两个正整数之间的所有双胞胎素数。每个数占6位宽度,每行输出10个数,按由小到大的顺序。如果没有这样的数,则不输出任何数据。

Sample Input
200 120
45 15
38 475

Sample Output
137 139 149 151 179 181 191 193 197 199
17 19 29 31 41 43
41 43 59 61 71 73 101 103 107 109
137 139 149 151 179 181 191 193 197 199
227 229 239 241 269 271 281 283 311 313
347 349 419 421 431 433 461 463

import java.util.*;
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
Scanner in= new Scanner(System.in);
while(in.hasNext()){
int a = in.nextInt(),c=0;
int b=in.nextInt(),d=0,e=0;

if(a>b)
{
	int t=a;
	a=b;
	b=t;
}
for(int i=a;i<=b;i++)
{boolean bol=isPrimeNormal(i);
	if(bol)
	{
		c++;
	}
}
int x[]=new int [c];
for(int i=a;i<=b;i++)
{boolean bol=isPrimeNormal(i);
	if(bol)
	{
		x[d]=i;d++;
	}
}
for(int j=0;j<c-1;j++)
{
	if(x[j+1]-x[j]==2)
	{
		System.out.printf("%6d%6d", x[j],x[j+1]);
		e++;
		if(e%5==0)
		{
			System.out.println();
		}
	}
}
System.out.println();}
}
	public static boolean isPrimeNormal(int num) {
	    for(int i=2; i<num; i++) {
	        if(num%i == 0) {
	            return false;
	        }
	    }
	     
	    return true;
	}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不关我事~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值