数字之谜1——质数“打印2到1000的所有素数,同时每行显示8个素数”2021.5.6 00:40
Posted 倾卿亲君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字之谜1——质数“打印2到1000的所有素数,同时每行显示8个素数”2021.5.6 00:40相关的知识,希望对你有一定的参考价值。
数字的魅力
在学习编程之初,我们接触了许多特别的数,例如质(素)数、完数、水仙花数等等,这些数字看似平平无奇但各个都暗藏玄机。所以在编程之初我们会有许多程序都与他们有关,要求我们找到他们。今天我们就来谈谈这些数字。
质(素)数
1、素数的定义
质数又称素数,质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。在我看来是一堆看起来最孤独的数字,他们只能与1和本身相处融洽,与其他任何1到本身的数都相处的不好,因为它们只能整除1和本身。与其相反的数字叫做合数,相比于质数,合数的朋友就很多了,因为除了1和本身还有其他数字可以整除(在这里说明一下0和1既不是质数也不是合数)。这么一堆看似毫无意义又孤独的数字到底有什么作用呢?我们寻找它们的意义何在?
2、寻找质数的目的
首先质数是有无限个的,并且随着数字越大,质数越难找到,越往后素数越稀疏,分布率越低。寻找质数的目的现在就我所知有以下几点。
- 质数在现阶段常常被利用在密码学上,这其中就涉及到网络信息安全问题啦,其中有一个叫做公钥的东东就用到了质数,所谓的公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。而公钥的处理加密方式就是将想要传递的信息在编码时加入质数,编码之后传送给收信人,任何人在收到此信息后,若是没有此收信人所拥有的密钥,将得不到所加密的信息。而解密的过程中即是为寻找素数的过程也叫做分解质因数,若是因为找质数的过程过久,会使得即使取得了加密的信息也毫无意义。
- 在军事领域,利用质数的无规律性,使得我们所发导弹或鱼雷会以质数形式无规律变化,可以使敌人不易拦截。(目前还没有一个完美的公式可以表示出整个所有的质数)
- 质数在汽车变速箱齿轮的设计上,也得到了一定的应用,相邻的两个大小齿轮齿数最好设计成质数,以增加两齿轮内两个相同的齿相遇啮合次数的最小公倍数,这样设计可以增强耐用度,从而减少汽车发生故障。
- 在生物方面,质数也是以神秘的方式存在。许多生物的生命周期也是质数,这样可以最大程度地减少碰见天敌的机会;同时在害虫的生物生长周期与杀虫剂使用之间的关系上,质数次数地使用杀虫剂是最合理的也得到了证明。
.......
可以这么说,没有质数,就不会维持一个相对动态平衡的系统,说质数是解开宇宙秘密的钥匙、未知的宇宙密码或者是宇宙的基石一点也不为过。现在大家也对质数有了一定的了解,质数在我看来诠释一个点,那就是“无敌是多么~~多么寂寞~~”质数耐得住失去除了1和本身的所有因数的这种寂寞,成为了数学界乃至整个宇宙的“无敌数字”。这也教会了我一定的道理,“欲戴皇冠,必承其重”、“想成功就必须耐得住寂寞,抵得住诱惑”。好啦!闲话不多说,那我们来瞅瞅这么神秘无敌的数字我们该如何找到他呢?
打印2到1000的所有素数,同时每行显示8个素数
//打印2到1000的所有素数,每行显示8个素数
public class Homework10
public static void main(String[] args)
int a = 0;
int n = 1000;
int i , j;
int num = 0;
for(i = 2; i <= n;i++)
if (i - 1 == 1)
System.out.print(i + " ");
num++;
if(num == 8)
System.out.println();
num = 0;
for(j = 2;j < i;j++)
if(i % j == 0)
break;
if(i % j != 0 && j == (i-1))
System.out.print(i + " ");
num++;
if(num >= 8)
System.out.println();
num = 0;
后续补实验流程图和代码讲解。
未完待续。。。
以上是关于数字之谜1——质数“打印2到1000的所有素数,同时每行显示8个素数”2021.5.6 00:40的主要内容,如果未能解决你的问题,请参考以下文章
数字之谜1——质(素)数续详细讲解“打印一千以内的所有完数”~~
数字之谜1——质(素)数续详细讲解“打印一千以内的所有完数”~~