簡體   English   中英

可能簡單的數學-素數代碼

[英]Potentially simple math - Prime Number Code

我很難理解這個程序,它已在指南中用作示例。 它可能更多是數學問題,而不是編碼問題。 編輯以包含代碼!

// Find prime numbers between 2 and 100.
class Prime {
 public static void main(String args[]) {
  int x, y;
  boolean isprime;

  for(x=2; x < 100; x++) {
    isprime = true;

    for(y=2; y <= x/y; y++)
      if((x%y) == 0) isprime = false;

    if(isprime)
      System.out.println(x + " is a prime number.");
  }
 }
}

這是我對該程序的理解:

  • 聲明x(可能的質數)和y(將x除以-的數字,如果存在除法可能(除本身或1以外)不產生余數,則它不是質數)。
  • 聲明一個布爾值以保存數字是否為質數。
  • 創建一個for循環來測試2到100之間的每個數字
  • 默認isprime布爾值為true
  • 創建一個for循環以將質數除以2和???之間的數字 (我不了解此for循環的條件部分)

  • 我試圖在此處放入system.out.print選項,以顯示每次迭代時x和y是什么,但是隨后它計算了非素數作為素數。

  • 如果將質數除以所有這些數字,並且有一個無余數的數字,請將布爾值isprime更改為false。
  • 如果在遍歷所有值之后所有值都有余數,請打印出這是質數。

它的跳過數字沒有意義,無法檢查它們是否是因素。 例如,如果x = 49 ,它將檢查直到y = 7之后條件將為false。 由於它已經檢查了7之前的所有數字,因此不可能有比該數字的平方根高的因數。 因此本質上,它檢查從2到數的square root的因數。

暫無
暫無

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

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