二、質數(prime number)是大於 1 的自然數中,只能被 1 和自身整除的數。 例如,2, 3, 5, 7, …。試在不使用 Java 中質數相關 API 的情況下,撰寫 Java main()程式(不要另訂 class, method 或 function),來找出小於 500 的所有質數,其結果列印必須如下:(25 分)
詳解 (共 3 筆)
Copy code
public class Main {
public static void main(String[] args) {
int countPrimes = 0;
for (int number = 2; number < 500; number++) {
if (isPrime(number)) {
System.out.println(number + " is prime.");
countPrimes++;
}
}
System.out.println(countPrimes + " primes found.");
}
// 2 is the smallest prime number
if (number <= 1) {
return false;
}
// Check from 2 to number-1
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
這段程式碼定義了一個名為 isPrime 的方法,該方法決定一個數字是否為質數。在 main 方法中,它遍歷從 2 到 499 的所有數字,對每個數字調用 isPrime 方法。如果 isPrime 方法返回 true,它將打印該數字是質數,並增加質數的計數。最後,它打印出找到的質數總數。
public static void main(String[] args) {
ArrayList a = new ArrayList<>();
for(int i = 2; i <= 500; i++)
a.add(i);
int i = 0, j = 0;
while(i < a.size()){
j = i + 1;
while(j < a.size()){
if(a.get(j) % a.get(i) == 0)
a.remove(j);
else
j++;
}
i++;
}
for(int v : a)
System.out.println(v + " is prime.");
System.out.println(a.size() + " primes found.");
}
public static void main(String []args){
int sum=0;
for(int i=2;i<=500;i++){
int count=0;
for(int j=1;j<=i;j++){
if(i%j==0){
count++; //加總i 的因數個數
}
}if(count<=2){ //質數的因數只有自己和1
System.out.println(i+" is prime");
sum++; //加總所有質數的個數
}
}System.out.println(sum+" primes found");
}