警告
本文最后更新于 2022-01-17,文中内容可能已过时。
检验
1
2
3
4
5
6
7
8
9
10
|
from math import *
def is_prime(n):
if n < 2:
return False
for i in range(2, int(sqrt(n))+1):
if n % i == 0:
return False
return True
|
打表(欧式筛法)
0、1不是素数,素数的倍数不是素数(质因数分解)
1
2
3
4
5
6
7
8
9
|
def prime(MAX_N):
lst = [True for _ in range(MAX_N+1)]
lst[0] = lst[1] = False
for i in range(2, MAX_N//2):
if lst[i]:
for j in range(2*i, MAX_N+1, i):
lst[j] = False
return lst
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#define MAX 10005
bool prime[MAX];
void init_prime(){
memset(prime,true,sizeof(prime));
prime[0]=prime[1]=false;
for(int i=2;i<=MAX/2;i++){
if(!prime[i])
continue;
for(int j=2*i;j<MAX;j+=i){
prime[j]=false;
}
}
}
|
参考
【Python】质数的几种判断方法 - 知乎 (zhihu.com)
python中质数实现_都枯槐的博客-CSDN博客_python素数