執行結果:
通過
顯示詳情
執行用時 :14 ms, 在所有 Java 提交中擊敗了80.36% 的用戶
內存消耗 :39.5 MB, 在所有 Java 提交中擊敗了16.23%的用戶
題目:
統計所有小於非負整數 n 的質數的數量。
示例:
輸入: 10
輸出: 4
解釋: 小於 10 的質數一共有 4 個, 它們是 2, 3, 5, 7 。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/count-primes
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
思路:
創建一個boolean數組,用排除法,倍數不是質數。
優化:外層循環到開方,內層循環從平方開始
代碼:
class Solution {
public int countPrimes(int n) {
boolean[] isprime=new boolean[n];
for(int i=2;i*i<=n;i++)
{
if(!isprime[i])
{
for(int j=i*i;j<n;j+=i)
{
isprime[j]=true;
}
}
}
int result=0;
for(int i=2;i<n;i++)
{
if(!isprime[i])
{
result++;
}
}
return result;
}
}