找不到自己哪里错了,运行不出来

感觉自己写的没毛病,初学者,都不会,需要提交,能帮我看看吗?各路宝子们帮帮忙。

img

你的问题是:判断生成的数据不重复有问题,判断是否是素数那里有问题,
在你的代码的基础上给你修改了:


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))

运行结果:

img

你的素数判断是错的,不是说不能整除一个就是素数了,要全部都不能整除才是

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=' ')

img