第十四届蓝桥杯集训——for——判断质数/素数
判断素数是我们在做算法题目中出现频次较高的基础题目。
今天我们再来深入的琢磨一下。
1、什么是质数/素数?
百度百科中:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。
2、整除代码的表达方式?
num%i==0
我们使用num%i==0的方式来代表是否能被整除,其中num与i都是整数,num是要判断的数,i的取值范围是2~num-1所有整数的集合,【%】取模符号,也可以叫做取余数的符号,交取余。如果一个数除以另外一个数后余数为0,那就代表这个被除数可以整除另外一个数。
3、判断素数代码
package com.item.action; public class demo { public static void main(String[] args) { int num = 97; boolean isf=true; for (int i = 2; i < num; i++) { if(num%i==0) { isf=false; break; } } System.out.println(isf); } }
4、素数的价值
素数可以做很多很多事情,我们来看一下这百年来的大神们都推算出了什么?
1、在一个大于1的数a和它的2倍之间(即区间(a, 2a]中)必存在至少一个素数。
2、存在任意长度的素数等差数列。
3、一个偶数可以写成两个合数之和,其中每一个合数都最多只有9个质因数。(挪威数学家布朗,1920年)
4、一个偶数必定可以写成一个质数加上一个合成数,其中合数的因子个数有上界。(瑞尼,1948年)
5、一个偶数必定可以写成一个质数加上一个最多由5个因子所组成的合成数。后来,有人简称这结果为 (1 + 5)(中国潘承洞,1968年)
6、一个充分大偶数必定可以写成一个素数加上一个最多由2个质因子所组成的合成数。简称为 (1 + 2)
5、素数分布规律
以下15个区间内质数和孪生质数的统计数。
S1区间1——72,有素数18个,孪生素数7对。(2和3不计算在内,最后的数是孪中的也算在前面区间。)
S2区间73——216,有素数27个,孪生素数7对。
S3区间217——432,有素数36个,孪生素数8对。
S4区间433——720,有素数45个,孪生素数7对。
S5区间721——1080,有素数52个,孪生素数8对。
S6区间1081——1512,素数60个,孪生素数9对。
S7区间1513——2016,素数65个,孪生素数11对。
S8区间2017——2592,素数72个,孪生素数12对。
S9区间2593——3240,素数80个,孪生素数10对。
S10区间3241——3960,素数91个,孪生素数19对。
S11区间3961——4752素数92个,孪生素数17对。
S12区间4752——5616素数98个,孪生素数13对。
S13区间5617——6552素数108个,孪生素数14对。
S14区间6553——7560素数113个,孪生素数19对。
S15区间7561——8640素数116个,孪生素数14对。
6、素数密度公式
码公式不易,欢迎点赞支持一下。