欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

孪生素数 博客分类: java算法 孪生素数java算法 

程序员文章站 2024-03-24 22:01:10
...

//孪生素数
//所谓孪生素数指的就是间隔为 2 的相邻素数,
//它们之间的距离已经近得不能再近了,就象孪生兄弟一样。
//最小的孪生素数是 (3, 5),在 100 以内的孪生素数还有
//(5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61) 和 (71, 73),
//总计有 8 组。但是随着数字的增大,孪生素数的分布变得越来越稀疏,寻找孪生素数也变得越来越困难。
//那么会不会在超过某个界限之后就再也不存在孪生素数了呢?
//孪生素数有无穷多对!这个猜想被称为孪生素数猜想,至今没有被严格证明。
//但借助于计算机我们确实可以找到任意大数范围内的所有孪生素数对。


//孪生素数的判断
public class Title2 {
	
	//判断是否是素数
	public static boolean isPrime(int x){
		for(int i=2;i<x/2;i++){
			if(x%i==0){	//能被整除则不为素数
				return false;
			}
		}
		return true;
	}
	
	//判断相邻的且距离为:2 的两个素数
	public static int twinPrimeNum(int n)
	{
		int sum = 0;	//累加次数
		for(int i=2; i<n; i++)	//最小的素数是:2
		{
			if(isPrime(i) && isPrime(i+2)) sum++;	//在目标值内寻找孪生素数
		}
		
		return sum;		//返回最后的组数
	}

	public static void main(String[] args){
		System.out.println(twinPrimeNum(100));
	}
}