如何计算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。

素数-百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-30
根据素数的定义来计算,素数的定义,一个正整数只能被1和它自身整除,那么这个数就是素数。判断一个数是不是素数很简单。下面说一下程序原理。
定义变量2从1到100,如果j从1到i,i对j求余运算只有两次满足为零(被1和它自身整除时),那么就可以认为这个数是素数,就可以输出了。
第2个回答  2015-07-08

  编程如下:

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个质数不能少;

  百以内质数心中记。

第3个回答  2009-03-21
package Test;

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;
}
}
程序有点凌乱,希望您能看懂,看不懂我再帮你解释
第4个回答  2009-03-21
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+"是素数");
}
}

}

}本回答被提问者采纳