[英]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
循環中,檢查number
和count
的余count
是否為零。 如果是,它是一個質數。 如果不是,則將count
加count
繼續循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.