统计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;
}
参考链接:
https://blog.csdn.net/qq_40181007/article/details/86289833