计算1到n之间的素数的个数的经典代码
public class Solution {
public int countPrimes(int n) {
int count=0;
for (int i=1;i<n;i++) {
if(isPrime(i)) {
count++;
}
}
return count;
}
private boolean isPrime(int num) {
if(num<=1) {
return false;
}
for(int j=2;j*j<=num;j++) {
if(num%j==0) {
return false;
}
}
return true;
}
}
素数,也叫质数,他是大于1的自然数,除了1和他本身外不能再被其他自然数整除的数,也就是说除了1和他本身外不再含有其他的因数。最小的素数是2,否则是合数。
通过调试程序,提高算法的效率。程序中使用j*j<=num instead of j<=sqrt(num),可以降低频繁调用函数sqrt()的开销。