什么是素數?
質數又稱素數,一個大于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.uj5u.com/houduan/544165.html
標籤:Java
下一篇:案例分析|如何消除代碼壞味道
