使用Java解決 - 判斷101-200之間有多少個素數,並輸出所有素數
在編程中,處理數學問題是一個常見的任務。本文將介紹如何使用Java語言來判斷101到200之間的整數中有多少個是素數,並輸出這些素數。素數是指在大於1的自然數中,除了1和它本身以外不再有其他因數的數。
什麼是素數?
素數(Prime number)是隻有兩個正因子(1和自己)的自然數,且必須大於1。例如,5是一個素數,因為它只能被1和5整除;而4不是素數,因為它可以被1、2和4整除。
Java代碼實現
下面是一個簡單的Java程序,用於找出並打印101到200之間的所有素數:
public class PrimeNumbers {
public static void main(String[] args) {
int count = 0; // 計數器,用於統計素數的數量
for (int i = 101; i <= 200; i++) {
if (isPrime(i)) {
System.out.println(i);
count++;
}
}
System.out.println("101到200之間共有 " + count + " 個素數。");
}
// 判斷一個數是否為素數的方法
private static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
代碼解析
- 主方法 (
main方法):
- 定義了一個計數器
count來記錄找到的素數數量。 - 使用
for循環遍歷101到200之間的每一個數字。 - 對每個數字調用
isPrime方法檢查是否為素數。 - 如果是素數,則打印該數字並將計數器加一。
- 最後,輸出總共找到了多少個素數。
- 判斷素數的方法 (
isPrime方法):
- 首先檢查數字是否小於或等於1,如果是,則返回
false,因為1及以下的數不是素數。 - 使用一個
for循環從2開始到該數字的平方根進行迭代。選擇平方根作為上限是因為如果一個數不是素數,那麼它必定有一個小於或等於其平方根的因數。 - 在循環中,如果發現任何能整除該數字的數,則返回
false。 - 如果循環結束後沒有發現能整除的數,則返回
true,表示該數字是素數。
運行結果
當你運行上述Java程序時,它會輸出101到200之間的所有素數以及這些素數的總數。
下面是一個用Java編寫的示例程序,用於判斷101到200之間的素數,並輸出這些素數及其總數。
public class PrimeNumbers {
public static void main(String[] args) {
int start = 101;
int end = 200;
int count = 0;
System.out.println("Prime numbers between " + start + " and " + end + " are:");
for (int i = start; i <= end; i++) {
if (isPrime(i)) {
System.out.println(i);
count++;
}
}
System.out.println("Total prime numbers between " + start + " and " + end + ": " + count);
}
// 判斷一個數是否為素數
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
代碼解釋
- 主類和主方法:
PrimeNumbers是主類。main方法是程序的入口點。
- 變量定義:
start和end分別定義了要檢查的範圍(101到200)。count用於記錄找到的素數數量。
- 循環遍歷範圍內的每個數:
- 使用
for循環從start到end遍歷每個數。 - 對於每個數,調用
isPrime方法判斷其是否為素數。
- 判斷素數的方法:
isPrime方法接受一個整數num作為參數。- 如果
num小於或等於1,則返回false(因為1及以下的數不是素數)。 - 使用
for循環從2到sqrt(num)檢查是否有任何數能整除num。如果有,則num不是素數,返回false。 - 如果沒有找到能整除
num的數,則num是素數,返回true。
- 輸出結果:
- 如果一個數是素數,輸出該數並增加
count。 - 最後輸出總共有多少個素數。
運行這個程序,你將看到101到200之間的所有素數及其總數。希望這對你有幫助!如果有任何問題,請隨時提問。當然可以!下面是一個使用Java編寫的程序,用於判斷101到200之間有多少個素數,並輸出所有的素數。
Java 代碼
public class PrimeNumbers {
public static void main(String[] args) {
int start = 101;
int end = 200;
int count = 0;
System.out.println("Prime numbers between " + start + " and " + end + " are:");
for (int i = start; i <= end; i++) {
if (isPrime(i)) {
System.out.println(i);
count++;
}
}
System.out.println("Total prime numbers between " + start + " and " + end + ": " + count);
}
// 判斷一個數是否為素數
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
if (num == 2) {
return true;
}
if (num % 2 == 0) {
return false;
}
for (int i = 3; i <= Math.sqrt(num); i += 2) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
代碼解釋
- 主類和主方法:
PrimeNumbers是主類。main方法是程序的入口點。
- 變量定義:
start和end分別定義了要檢查的範圍(101到200)。count用於記錄素數的數量。
- 循環遍歷範圍內的每個數:
- 使用
for循環從start到end遍歷每個數。 - 對於每個數
i,調用isPrime方法判斷其是否為素數。
- 輸出素數:
- 如果
i是素數,輸出該數並增加count。
- 輸出總素數數量:
- 循環結束後,輸出總的素數數量。
- 判斷素數的方法
isPrime:
- 如果
num小於等於1,返回false(1不是素數)。 - 如果
num等於2,返回true(2是最小的素數)。 - 如果
num是偶數且不等於2,返回false(偶數除了2都不是素數)。 - 使用
for循環從3開始,每次增加2(只檢查奇數),直到Math.sqrt(num),如果num能被任何一個小於等於其平方根的數整除,則返回false。 - 如果以上條件都不滿足,返回
true,表示num是素數。
運行結果
運行上述程序,你將看到101到200之間的所有素數及其總數。例如:
Prime numbers between 101 and 200 are:
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
Total prime numbers between 101 and 200: 21
希望這個示例對你有幫助!如果有任何問題或需要進一步的解釋,請隨時告訴我。