簡化求質數演算法

2022-04-29 02:15:08 字數 493 閱讀 2023

前幾天做了個求質數題,這兩天瀏覽演算法題庫,偶然看到了原題以及程式分析:

判斷素數的方法:用乙個數分別去除2到sqrt(這個數),如果能被整除,則為素數。

這樣一來不用除到自身了都,顯然更簡單,同時還要對之前的方法進行點小修改,將記錄是否為質數的boolean變數都去掉,哈哈,是不是很激動的想知道答案???

話不多說都在**裡:

var min = 100;

var max = 200;

for(var i = min; i <= max ; i++)

}if(j >=math.floor(math.sqrt(i)))

}

這裡修改了兩處地方,減少了執行步驟:

1、使用 math.ceil() 向上取整,判斷到此數的開平方數即可。

2、移除是否為質數的判斷,只有正常執行完內部迴圈的數為質數,迴圈之後使用 math.floor() 向下取整,大於這個數即可。

哈哈賊機智。

演算法之求質數

問題 統計所有小於非負整數 n 的質數的數量。一開始直接使用暴力列舉法 public static intcountprimes int n return count public static boolean isprimes int n return true 發現在leetcode上會超出時間...

如何用mysql求質數 求質數的幾種演算法

1 根據質數的定義求 質數定義 只能被1或者自身整除的自然數 不包括1 稱為質數。利用它的定義可以迴圈判斷該數除以比它小的每個自然數 大於1 如果有能被它整除的,則它就不是質數。對應 是 輸出從2到max的所有質數 public static void prime intmax i count if...

求質數 素數 演算法思想

此演算法是網上查詢到的 覺得不錯 所以拿來與大家分享 1 求10000 以內的所有素數。素數是除了 1和它本身之外再不能被其他數整除的自然數。由於找不到乙個通項公式來表示所有的素數,所以對於數學家來說,素數一直是乙個未解之謎。像著名的 哥德 猜想 孿生素數猜想,幾百年來不知吸引了世界上多少優秀的數學...