什么是素数?
质数又称素数。一个大于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 + \" \");
}
}
}
}
来源:https://www.cnblogs.com/yaomagician/p/17129701.html
本站部分图文来源于网络,如有侵权请联系删除。