簡體   English   中英

判斷一個數是否為素數

[英]Finding if a number is prime

我剛剛開始了一個java課程。 任務是編寫一個代碼來輸出一個數是否為素數。

這就是我所擁有的。 它出現了很多錯誤。 我找到了很多答案,但他們都說要使用我們沒有學過的台詞。

public class PrimeNumbers2 {
public static void main(String[] args) {
    int number = 9;
    int count = 2;
    Boolean prime = true;

    if (number % count == 0) {
        prime = true;
    }
    else {

        for (count = count + 1) {

        if (count + 1>= number) {
            prime = false;
        }
        else
        {
            prime =  false;
        }

    }
    if (prime == true)
    {
        System.out.println("Number is prime");
    }
     else
    {
        System.out.println("number is not prime");
    }
}}}

您應該考慮如何用自然語言表述您的問題。 例如:素數是一個只能被它自己和 1 整除的數字。或者反過來對於大於 1 和小於我的數字范圍內的每個數字,不應該有除法器

要現在用簡單的 Java 代碼來表述您的問題,請嘗試實現您的語句。

   for(int count=2; count < number; count++) {
      if(number % count == 0) {
          System.out.println("Number is not a prime!");
          // Since we are finished return and do no more iterations
          return;
      }
   }
   // we iterated all possible numbers and can return successfully
   System.out.println("Number is a prime");

還要確保提前檢查邊緣情況。 例如負數。 請注意,這是一種低效的解決方案,但很直接。

您的代碼中有多個錯誤和邏輯錯誤。 這里已經清理干凈了。

int number = 15;
int count = 2;
boolean prime = true;


for (int i = count; i <= number/2; i++ ) {

   if (number % i == 0) {
      prime = false;
  }
}


if (prime == true)
{
    System.out.println("Number is prime");
}
else
{
    System.out.println("number is not prime");
}

如果我們在這里談論一個超級簡單的實現,您可以首先檢查數字是否使用余數運算符,即,如果number % 2 == 0 ,則prime = true 如果不是這種情況,請設置count = 3並使用終止條件while (count < number)設置while循環。 while循環中,檢查numbercount的余count是否為零。 如果是,它是一個質數。 如果不是,則將countcount繼續循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM