孪生质数——孤独的质数

本文通过《质数的孤独》引出孪生质数的概念,讲述了质数的特性,以及数学家对孪生质数的研究。文章还分享了一个用Java编写的搜索孪生质数的简单程序,该程序能够找到大于5的整数范围内所有相差2的质数对。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

质数只能被1和它自己整除。质数和其他数字一样,排在无穷无尽的自然数里,几乎被相邻的两个数字挤扁,虽然被挤压着,却又藏着一种格格不入的孤独。质数永远是可疑的、不合群的孤独者,所以马蒂亚喜欢质数。有时候,马蒂亚觉得质数一定是误入了某种陷阱,才会被囚禁在自然数的序列里,就像珍珠被囚禁在项链里,永远无法逃离。有时候,马蒂亚又觉得也许质数最大的愿望就是变成一个普通的自然数,和别的数字一样正常,不再那么格格不入,但是,这个愿望永远不可能实现……
 大学一年级的时候,马蒂亚学到这样一个知识点:质数中还有一些更为特殊的数字,数学家们称之为“孪生质数”。每一对孪生质数的位置相差不远,几乎可以说是邻居,但它们之间却总会插进一个偶数,硬生生把它们隔开。比如11和13、17和19、41和43都是孪生质数。如果你继续观察下去,就会发现孪生质数变得越来越少。越来越多孤立的质数,存在于这个寂静的谜一样的空间里。越观察,你越会产生一个绝望的预感:之前发现的那些孪生质数也许只是偶然的巧合,而孤独、彻底的孤独,才是一个质数真正的宿命。但是,就在你准备放弃,觉得再也没有必要继续观察下去的时候,你又会碰到一对孪生质数,它们紧紧地依偎在一起,对抗着周围的冰冷和绝望。数学家们相信,不管你观察到哪里,前方一定还有更多的孪生质数,虽然没有人知道,下一对孪生质数会出现在哪里,但我们总会找到它们。 马蒂亚觉得,他和爱丽丝就是一对孪生质数。他们都很孤独,他们同样迷失在这个冰冷的世界里,他们是彼此唯一的安慰,但他们之间仍隔着不可逾越的障碍,他们永远无法真正地紧挨着彼此。
——上文出自《质数的孤独》 
下面我给大家带来我自己编写的打印孪生质数的方法:
import java.util.Scanner;//导包
class SearchTime 
{
        public static void main(String[] args) 
        {        System.out.println("***************输入任意大于 5 的整数***************");
                Scanner sc=new Scanner(System.in);
                int num=sc.nextInt();// 接收键盘录入数据
                long start=System.currentTimeMillis();//本程序可以用来简单检测设备性能,所以定义了获取运行时间的代码。
                search(num);
                long end=System.currentTimeMillis();
                System.out.println("运行时间:"+(end-start)+"毫秒");
        }
        public static void search(int num)
        {        
                int[] arr = new int [num];//建立一维数组储存质数
                int count = 0;
                q:for (int x=3;x<=num ;x++ )
                {
                        int a=2;
                        while (a<x)
                        {
                                if (x%a==0)//循环遍历所有的可能约数,有大于2的约数跳出while循环。
                                        break;
                                else
                                {
                                        a++;
                                        if(a>(int)(Math.sqrt(x)))
                                        {        
                                                arr[count++]=x;//找出质数后存进数组。
                                                continue q;
                                        }
                                }
                        }        
                }
                //打印孪生质数
                for (int x=0;x<arr.length-1 ;x++ )
                {
                        if ( (arr[x+1]-arr[x]) == 2 )
                        {
                                System.out.print("("+arr[x]+","+arr[x+1]+")"+"\t");
                        }
                }        
        }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值