发布时间:2023-02-17 文章分类:编程知识 投稿人:赵颖 字号: 默认 | | 超大 打印

什么是素数?

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。

实际案例

比如我们想找出1-1000的所有素数

思路1

可以先定义一个方法

primeNumber
//参数列表用来接收所想找的素数范围
public static int primeNumber (int begin,int end){
int count = 0;//初始化一个元素来记录素数  //遍历所找范围
for (int i = begin; i <=end ; i++) {
//添加一个标记位
boolean flag = true;//用来记录是否为素数
for (int j = 2; j <= i /2; j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag == true) {
System.out.print(i+"\t");
count++;
}
}
return count;
}
//主方法里调用
//找素数(质数)除了1和他本身以外,不能被其他整数整除,就叫素数
public static void main(String[] args) {
int i = primeNumber(100,300);
System.out.println(" ");
System.out.print("素数个数为"+i);
}

思路2

/**
* 场景:输出101~200之间的所有素数
* 1、遍历该区间内所有数据
* 2、判断该数据是否是素数
* 3、根据判定结果输出素数
*/
public class test {
public static void main(String[] args) {
        //定义循环,找到101~200之间的所有数据
for (int m = 101; m < 200; m++) {
        //设置flag = true,默认i为素数
boolean flag = true;
        //m同定义中的范围,取值为2~√(m),判断当前遍历的数据是否是素数
for (int n = 2; n <= sqrt(m); n++) {
if(m % n == 0){ //若m能被n整除,意味当前数不是素数
        //当前数不是素数,则flag的值更改为false
flag = false;
break; //跳出当前循环
}
}
        //根据flag的结果,判断m是否是素数,如果是(flag == true),则输出
if (flag){
System.out.print(m + " ");
}

}
}
}