什麼是素數? 質數又稱素數。一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數(規定1既不是質數也不是合數)。 實際案例 比如我們想找出1-1000的所有素數 思路1 可以先定義一個方法 primeNumber//參數列表用來接收所想找的素數範圍 public st ...
什麼是素數?
質數又稱素數。一個大於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 + " ");
}
}
}
}