关闭

LeetCode Count Primes

标签: javaleetcodePrime
97人阅读 评论(0) 收藏 举报
分类:

Description:

Count the number of prime numbers less than a non-negative number, n.

Solution:

可以用筛法求素数。

先用2把所有2的倍数去掉,3把所3的倍数去掉,依此类推。

这道题目出的不是特别好,因为n如果太大,筛法也是不可行的,首先数组就没办法开那么大。

import java.util.*;

public class Solution {
	public int countPrimes(int n) {
		if (n <= 2)
			return 0;
		boolean isPrime[] = new boolean[n];
		Arrays.fill(isPrime, true);

		isPrime[2] = true;
		for (int i = 2; i < n; i++) {
			if (isPrime[i])
				for (int j = 2; i * j < n; j++)
					isPrime[i * j] = false;
		}

		int count = 0;
		for (int i = 2; i < n; i++)
			if (isPrime[i])
				count++;
		return count;
	}
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:67742次
    • 积分:3304
    • 等级:
    • 排名:第10633名
    • 原创:288篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条
    最新评论