leetcode204. 计数质数(vip题)
【摘要】 统计所有小于非负整数 n 的质数的数量。
示例:
输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
思路:筛法,见代码。
class Solution { public int countPrimes(int n) { // 1. 给数加上标记 byte[] nums = new byte[n]; for (int i...
统计所有小于非负整数 n 的质数的数量。
示例:
-
输入: 10
-
输出: 4
-
解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
思路:筛法,见代码。
-
class Solution {
-
public int countPrimes(int n) {
-
// 1. 给数加上标记
-
byte[] nums = new byte[n];
-
for (int i = 0; i < n; i++) {
-
nums[i] = 1;
-
}
-
-
// 2. 非质数标记清除
-
for (int i = 2; i < n; i++) {
-
if (nums[i] == 1) {
-
// 如果当前数为质数,筛掉倍数数字
-
for (int j = 2; i * j < n; j++) {
-
nums[i * j] = 0;
-
}
-
}
-
}
-
//3. 统计
-
int count = 0;
-
for (int i = 2; i < n; i++) {
-
if (nums[i] == 1)
-
count++;
-
}
-
return count;
-
}
-
}
文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。
原文链接:fantianzuo.blog.csdn.net/article/details/104088200
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)