⑴ 用python找质数
n=10000
numbers=list(range(2,n+1))
i=2
whilei<10001:
forminnumbers:
ifi<m:
whilem%i==0:#这边你为什么要用while呢,这边如果m=3,i=2的话是会进入死循环的,改成if语句试试
k=m#这个没必要存在,只接用numbers.remove(m)
numbers.remove(k)
i=i+1
print(numbers)
print(" Therewere",len(numbers),"primenumbersupto",n)
#下面是修改后的
n=10000
numbers=list(range(2,n+1))
i=2
whilei<10001:
forminnumbers:
ifi<mandm%i==0:
numbers.remove(m)
i=i+1
print(numbers)
print(" Therewere",len(numbers),"primenumbersupto",n)
⑵ python求质数的算法
很早 的一个 函数
⑶ python,随机产生40个100以内的数字,然后定义一个判断素数的函数,用该函数判断这40个数字并打印
fromrandomimport*
a=[randint(0,100)foriinrange(40)]#a是列表
defis_prime(a):
list_num=[]
foriina:
fornuminrange(2,i):
ifi%num==0:#余数为0时,该数就不是质数
break#break意思就是当该数不是质数时,就跳出整个循环
else:#循环迭代都完成后还没有找出能整除的情况,就可以判断该数i就是一个质数
list_num.append(i)
returnlist_num
print(is_prime(a))
⑷ Python设计:编写程序随机产生一个20-30之间的整数,判断是否是素数
⑸ python中的随机数是怎么实现的
PYTHON中的伪随机数发生器用的是梅森旋转算法。
梅森旋转算法(Mersenne twister)是一个伪随机数发生算法。由松本真和西村拓士在1997年开发,基于有限二进制字段上的矩阵线性递归。可以快速产生高质量的伪随机数,修正了古典随机数发生算法的很多缺陷。
梅森旋转算法是R、Python、Ruby、IDL、Free Pascal、PHP、Maple、Matlab、GNU多重精度运算库和GSL的默认伪随机数产生器。从C++11开始,C++也可以使用这种算法。
整个算法主要分为三个阶段:获得基础的梅森旋转链;对于旋转链进行旋转算法;对于旋转算法所得的结果进行处理。
算法实现的过程中,参数的选取取决于梅森素数,故此得名。
梅森素数由梅森数而来。所谓梅森数,是指形如2↑p-1的一类数,其中指数p是素数,常记为Mp 。如果梅森数是素数,就称为梅森素数。
例如4-1=3,8-1=7,16-1=15(不是素数),32-1=31,64-1=63(不是素数)等等。
⑹ Python求质数
如下:
importmath
defm(a,b):
ret=0
forxinrange(a,b+1):
foryinrange(2,int(math.sqrt(x))+1):
ifx%y==0:
break
else:
ret+=1
print(ret)
输入:m(3,7)
得到:3
⑺ python随机生成40个在(0,100)的数字组成列表,并判断每个数字是否为素数,打印素数
#!/usr/bin/python3
import random
for n in range(1, 40):
r=random.randint(0,100)
for x in range(2, r):
if r % x == 0:
break
else:
print(r, ' 是素数')