感觉自己写的没毛病,初学者,都不会,需要提交,能帮我看看吗?各路宝子们帮帮忙。
你的问题是:判断生成的数据不重复有问题,判断是否是素数那里有问题,
在你的代码的基础上给你修改了:
from random import *
seed(10)
L=[]
for i in range (50) :
num = randint(100, 299)
if num not in L: #要求数据不能重复,则需要判断这个数之前在不在L中,不在则添加进去,否则会重复
L.append(num)
print('列表数据:')
print(L)
S = [] #存储素数
for M in L:
for c in range(2, int(M**0.5)+1):
if M%c==0: #如果能整除,说明不是素数
break #则停判断
else: #如果上面的for循环判断完毕后都没有执行过里面的break,说明都不能被整数,那就是素数
S.append(str(M))
print('素数有:',' '.join(S))
运行结果:
你的素数判断是错的,不是说不能整除一个就是素数了,要全部都不能整除才是
import random
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
L = []
while len(L) < 50:
rand_num = random.randint(100, 299)
if rand_num not in L:
L.append(rand_num)
print("列表数据:", end = ' ')
print(L)
print("素数有:", end = ' ')
for num in L:
if is_prime(num):
print(num, end=' ')