1、判断一个数 是不是素数(质数)
n=int(input())
m=int(n**0.5)+1
#print(m)
for i in range(2,m):
if n%i==0:
print('不是质数')
break
else:
print('是质数')
2、求10w以内的素数
import time
print(2,end=' ')
count=1
for n in range(3,100000,2):
a=int(n**0.5)
for i in range(3,a+1):
if n%i ==0:
break
else:
print(n,end=' ')
count += 1
print('')
print('一共有{}个素数'.format(count))
3、求10w以内的素数–优化
代码说明:把偶数过滤掉,第一个判断再把5的倍数过滤掉
count=1
for i in range(3,100000,2):
if i>10 and i%10==5:
continue
else:
a = int(i ** 0.5)
for j in range(3, a + 1,2):
if i % j == 0:
break
else:
count += 1
print('一共有{}个素数'.format(count))
4、引用质数定理,一个合数肯定可以分解成几个质数的乘积
ps:代码来自 马哥教育
import math
primenumber=[]
flag=False
for x in range(2,100000):
for i in primenumber:
if x%i==0:
flag=True
break
if i >=math.ceil(math.sqrt(x)):
flag=False
break
if not flag:
print(x)
primenumber.append(x)