leetcode刷题笔记 二百零四题 计数质数
leetcode刷题笔记 二百零四题 计数质数
源地址:204. 计数质数
问题描述:
统计所有小于非负整数 n 的质数的数量。
示例:
输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
//本题使用了厄拉多塞筛法 对范围内每个质数的倍数标记为false,访问过程中跳过
object Solution {
def countPrimes(n: Int): Int = {
var count = 0
val primes = Array.fill(n)(true)
for(i <- 2 to n-1) {
if (primes(i) == true){
count += 1
//取i的倍数进行去除,最小为2倍
var j = 2 * i
while (j < n) {
primes(j) = false
j += i
}
}
}
return count
}
}