题目:
统计所有小于非负整数 n 的质数的数量。
class Solution {
public int countPrimes(int n) {
int[] nums = new int[n];//传入多少个数据,就创建多少个数据的整型数组
int res = 0;//res代表的是有多少的质数
for (int i = 0; i < n; i++) {
nums[i] = 1;
}//将数组中所有的值赋予1,且当值为1的时候,为质数,
for (int i = 2; i < n; i++) {
/*此次循环将会判断所有的数据,从第三个数据开始,
也就是从数字3开始,逐一判断,
如果当前数为非质数,则将其变为0
if (nums[i] == 1) {
for (int j = 2; i * j < n; j++) {//
将除了1*n本身的数字以外的所有可能性,如果小于等于
数据之内,则说明这个数不是质数,则将其数组中的值变为0
nums[i * j] = 0;
}
}
}
//遍历数组,统计值为1的元素个数
for (int i = 2; i < n; i++) {
if (nums[i] == 1)
res++;
}
return res;
}
}