亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這段代碼什么意思

這段代碼什么意思

狼顧之相1995 2016-09-15 17:33:33
public static boolean isPrime(int a) { boolean flag = true; if (a < 2) {// 素數不小于2 return false; } else { for (int i = 2; i <= Math.sqrt(a); i++) { if (a % i == 0) {// 若能被整除,則說明不是素數,返回false flag = false; break;// 跳出循環 } } } return flag; }
查看完整描述

4 回答

已采納
?
JustWannaHugU

TA貢獻452條經驗 獲得超796個贊


同學,你不明白的地方是for (int i = 2; i <= Math.sqrt(a); i++)嗎?

這是一個素數運算定理,已經證明出來的,可以拿來直接用

定理: 如果n不是素數, 則n有滿足1<d<=sqrt(n)的一個因子d.
證明: 如果n不是素數, 則由定義n有一個因子d滿足1<d<n.
如果d大于sqrt(n), 則n/d是滿足1<n/d<=sqrt(n)的一個因子.

它的時間復雜度O(sqrt(n)/2), 比普通的素數算法速度提高O((n-sqrt(n))/2).

查看完整回答
反對 回復 2016-09-15
?
椰蓉罐頭

TA貢獻19條經驗 獲得超4個贊

判斷一個數是不是素數,繼續循環flag是true,終止循環flag等于flase
望采納哦~

查看完整回答
反對 回復 2016-09-15
?
摩訶迦葉

TA貢獻146條經驗 獲得超54個贊


。。。。。 這段代碼的注釋感覺已經寫的很清除了呀。??? 就是判斷一個數是不是素數。 你還想知道什么?

查看完整回答
反對 回復 2016-09-15
  • 4 回答
  • 0 關注
  • 1624 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號