[英]print prime numbers in java in a simple way
我想制作一個代碼來打印所有素數..我在Java中完成了此代碼..我在isPrime方法的if語句中遇到問題,我不知道如何實現..這是代碼
public class PrimeList {
private boolean [] numbers;
/** Creates a complete filled out, the prime list of the numbers from 1 to n */
public PrimeList(int n) {
numbers = new boolean [n];
}
/** Prints all primes found */
public void printPrimeList() {
StringBuilder sb = new StringBuilder();
for(int i=0; i<numbers.length; i++) {
if(isPrime(i)==true) {
sb.append(i +",");
}
}
System.out.print(sb.toString());
}
/** Returns true if the NBR is a prime number that is listed,
false in all other cases */
public boolean isPrime(int nbr) {
if(nbr == 2) {
return true;
} else if (nbr/2 gives an int number && nbr/3 gives an int number ) {
return false;
} else {
return true;
}
}
public static void main(String[] args) {
PrimeList primes = new PrimeList(100);
primes.printPrimeList();
}
}
如您所見, else if (nbr/2 gives an int number && nbr/3 gives an int number ) {
我不知道如何實現它?
請幫助我實施此if語句..
謝謝 :)
本質上,您要執行的操作是遍歷所有整數x
直到nbr
的平方根,然后檢查nbr / x
的余數是否為0
。
要獲得除法運算的余數,必須使用模數運算符%
。
例:
for (int i=2; i<=Math.sqrt(nbr); i++) {
if (nbr % i == 0) {
// we found a number that divides evenly into nbr without
// any remainder, therefore this number is not a prime.
return false;
}
}
return true;
將其作為練習來找出為什么只需要迭代到平方根的練習。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.