1295. 质因数统计
题目给定一个正整数N,你需要统计(1,N]之间所有整数质数分解后,所有质数的总个数。
样例
输入:6
输出:7
解释:2=2, 3=3, 4=2*2, 5=5, 6=2*3, 个数和为1+1+2+1+2=7
注意事项
1<N<=100000
public class Solution {
/**
* @param N: a number
* @return: the number of prime numbers.
*/
public int Count_PrimeNum(int N) {
int result = 0;
sums = new int[N + 1];
sums[2] = 0;
for (int i = 2; i <= N; i++) {
sums[i] = pN(i);
result += sums[i];
}
return result;
}
int[] sums;
private int pN(int n) {
for (int j = 2; j < n; ) {
if (n % j == 0) {
return sums[j] + sums[n / j];
} else {
j++;
}
}
return 1;
}
}
public class Solution {
/**
* @param N: a number
* @return: the number of prime numbers.
*/
public int Count_PrimeNum(int N) {
int result = 0;
for (int i = 2; i <= N; i++) {
result += pN(i);
}
return result;
}
private int pN(int n) {
int sum = 0;
for (int j = 2; j <= n;) {
if (n%j==0){
sum++;
n=n/j;
}else {
j++;
}
}
return sum;
}
}