程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 編程c語言-i<=sqrt(n);這種情況為什麼也可以判斷是不是素數?

編程c語言-i<=sqrt(n);這種情況為什麼也可以判斷是不是素數?

編輯:編程綜合問答
i<=sqrt(n);這種情況為什麼也可以判斷是不是素數?

i <n;這種情況就是用 n 分別除以2,3,……,一直到小於n,如果都除不盡的話,就說n是素數。但實際上不用那麼麻煩的,比如i<=n/2;這種情況,只需要判斷到它的一半就可以了,因為一個數去除以比它的一半還要大的數一定除不盡的,所以不用再判斷了。可是i<=sqrt(n);這種情況我就奇怪了,老想不通這種情況為什麼也可以判斷?圖片圖片圖片圖片圖片圖片圖片

最佳回答:


根據素數的定義反推:因為如果一個數不是素數那麼它一定是兩個數的乘積。 n = sqrt(n) * sqrt(n),假設n是i*j,那麼i和j一定有一個是<= sqrt(n) ,另一個>=sqrt(n),因次只看較小那個除數存不存在就可以判斷n是否素數。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved