统计200到300的之间质数

python版本

#求200到300的质数

#如果一个数字n不是质数,它可以被分解为两个因数。a和b; n=a*b, 这两个因数,要么相等,要么一个大于平方根一个小于平方根,
# 如果我们找不到任何小于或等于平方根的因数,n一定是一个质数

import time
def test():
res=[]
for i in range(200,301):
if countPrimes(i):
res.append(i)
return res


def countPrimes(n):
if n<0 or n==0 or n==1: return False
m= int(n ** 0.5)

for i in range(2,m):
if n%i==0:
return False

return True

if __name__ == '__main__':
print(test())

java版本

import java.util.ArrayList;

public class countprimes {

public String test() {
ArrayList<Integer> res = new ArrayList<>();
for (int i = 200; i <= 300; i++) {
if (count_primes(i)) {
res.add(i);
}
}
return res.toString();
}

public Boolean count_primes(int num) {
if (num < 0 || num == 0 || num == 1) {
return false;
}
int chushu = (int) Math.sqrt(num);
for (int i = 2; i <= chushu; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}

}

统计小于n的质数个数

java版本

public static int countPrimes(int n){
int count=0;
for (int i = 2; i < n; i++) {
boolean flag=true;
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i%j==0){
flag=false;
break;
}
}
if (flag)
count++;
}
return count;
}

参考链接:​