如何计算100以内的所有素数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何计算100以内的所有素数?相关的知识,希望对你有一定的参考价值。
100以内的素数素数的规律如下:
1、个位是偶数的只有2;
2、个位是5的只有5;
3、个位是1的有11、31、41、61、71,共5个;
4、个位是3的有3、13、23、43、53、73、83,共7个;
5、个位是7的有7、17、37、47、67、97,共6个;
6、个位是9的有19、29、59、79、89,共5个。
注:个位十位数字相同的除了11外,其它都不是素数。
100以内的素数共25个,如下: 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97
拓展资料:
质数具有许多独特的性质:
(1)质数p的约数只有两个:1和p。
(2)初等数学基本定理:任一大于1的自然数,要么本身是质数,要么可以分解为几个质数之积,且这种分解是唯一的。
(3)质数的个数是无限的。
(4)质数的个数公式是不减函数。
(5)若n为正整数,在到之间至少有一个质数。
(6)若n为大于或等于2的正整数,在n到之间至少有一个质数。
(7)若质数p为不超过n()的最大质数,则。
(8)所有大于10的质数中,个位数只有1,3,7,9。
素数-百度百科
定义变量2从1到100,如果j从1到i,i对j求余运算只有两次满足为零(被1和它自身整除时),那么就可以认为这个数是素数,就可以输出了。 参考技术B
编程如下:
public class SuShuo
static int k;
public static void main(String[] args)
int i,j;
for(i=1;i<=100;i++)
for(j=2;j<i;j++)
if(i%j==0)
//System.out.println(i+"不是素数");
break;
if(i==j)
System.out.println(i+"是素数");
抓住素数的定义,100以内的素数其实不用计算就可以判断。
定义:素数就是质数,就是除了1和它本身以外不再有其他的因数。
最小的素数是2
100以内的素数素数的规律如下:
1、个位是偶数的只有2;
2、个位是5的只有5;
3、个位是1的有11、31、41、61、71,共5个;
4、个位是3的有3、13、23、43、53、73、83,共7个;
5、个位是7的有7、17、37、47、67、97,共6个;
6、个位是9的有19、29、59、79、89,共5个。
注:个位十位数字相同的除了11外,其它都不是素数。
100以内的素数共25个,如下:
2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97
口诀如下:
二,三,五,七,一十一;
一三,一九,一十七;
二三,二九,三十七;
三一,四一,四十七;
四三,五三,五十九;
六一,七一,六十七;
七三,八三,八十九;
再加七九,九十七;
25个质数不能少;
百以内质数心中记。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test
public static void main(String[] args)
List all = getNum(100);
Iterator it = all.iterator();
while(it.hasNext())
System.out.println(it.next());
/*
* 计算规则: 从2到该数字的一半(如果为奇数则减一再除以2)进行取摩,如果取摩为0,则该数字为素数
* int num 为要计算到的最大值
*/
public static List<Integer> getNum(int num)
//创建集合,用于保存找到的素数
List<Integer> allNum = new ArrayList<Integer>();
//外层循环
a:for(int i=2;i<num;i++)
int temp=0;
if(i%2==0)
temp = i/2;
else
temp = (i-1)/2;
boolean isTrue = true; //如果为素数则为true
for(int x=2;x<=temp;x++)
if(i%x==0)
isTrue = false;
continue a;
if(isTrue)
allNum.add(i);
return allNum;
程序有点凌乱,希望您能看懂,看不懂我再帮你解释 参考技术D public class SuShuo
static int k;
public static void main(String[] args)
int i,j;
for(i=1;i<=100;i++)
for(j=2;j<i;j++)
if(i%j==0)
//System.out.println(i+"不是素数");
break;
if(i==j)
System.out.println(i+"是素数");
本回答被提问者采纳
1到100的质数表
质数表:
分布规律
以36N(N+1)为单位,随着N的增大,素数的个数以波浪形式渐渐增多。
S1区间1——72,有素数18个,孪生素数7对。(2和3不计算在内,最后的数是孪中的也算在前面区间。)
S2区间73——216,有素数27个,孪生素数7对。
S3区间217——432,有素数36个,孪生素数8对。
以上内容参考:百度百科-质数
参考技术A 2、3、5、7 11、13、17、19、41、43、47 23、29、53、59、83、89百内素数巧记忆,二三五七素数起,
二五八十添三九,三六九十加七一,
一四七十讲友谊,一三七九全配齐,
七七四九九十一,不合规律要注意本回答被提问者和网友采纳 参考技术B 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
百内素数巧记忆,二三五七素数起,
二五八十添三九,三六九十加七一,
一四七十讲友谊,一三七九全配齐,
七七四九九十一,不合规律要注意
N=p1m1+a1=p2m2+a2=......=pkmk+ak 。(1) 其中 p1,p2,.....,pk表示顺序素数2,3,5,,,,,。a≠0。即N不能是2m+0,3m+0,5m+0,...,pkm+0形。若N<P(k+1)的平方 [注:后面的1,2,3,....,k,(k+1)是脚标,由于打印不出来,凡字母后面的数字或者i与k都是脚标] ,则N是一个素数。追问
;‘;’
参考技术C 100以内的质数?质数就是能被他本身和1整除的数。
有2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,其时不用背。也用不了这么多。 参考技术D 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97
以上是关于如何计算100以内的所有素数?的主要内容,如果未能解决你的问题,请参考以下文章