在Python中尝试获取数组中的所有素数

在Python中尝试获取数组中的所有素数,python,arrays,numbers,primes,Python,Arrays,Numbers,Primes,我试图打印出一个名为“checkMe”的数组中的所有素数。但我就是不能让它工作。我已经成功地制作了一个程序,它可以检查一个数字,但对数组不起作用。如果有人知道什么是错误的,请告诉我。顺便说一句:我是python的高手,所以它可能不是最漂亮的代码 checkMe = range(1, 100) dividers = [] primes = [] for y in checkMe: x = y for x in range(2, x): if (y/x).is_i

我试图打印出一个名为“checkMe”的数组中的所有素数。但我就是不能让它工作。我已经成功地制作了一个程序,它可以检查一个数字,但对数组不起作用。如果有人知道什么是错误的,请告诉我。顺便说一句:我是python的高手,所以它可能不是最漂亮的代码

checkMe = range(1, 100)

dividers = []
primes = []

for y in checkMe:
    x = y
    for x in range(2, x):
        if (y/x).is_integer():
            dividers.append(x)
    if len(dividers) < 2:
        primes.append(y)

print("\n"+str(checkMe)+" has "+str(len(primes))+" primes")
print(primes)
预期产出:

range(1, 100) has 25 primes
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83,
89, 97]

我不想让你的幻想破灭,但如果你在谷歌上快速搜索一下,你会找到答案的

无论如何,您的问题的解决方案如下:

checkMe = range(1, 100)

dividers = []
primes = []

for num in range(2,100):
    prime = True
    for i in range(2,num):
        if (num%i==0):
            prime = False
            dividers.append(num)
    if prime:
        primes.append(num)

print("\n"+ str(checkMe)+ "has "+str(len(primes))+" primes")
print(primes)

逻辑正确,但不重置除法器阵列。 此外,您应该忽略数字1,并且除法器的数量应该小于1

这应该行得通

checkMe = range(1, 100)
primes = []
for y in checkMe[1:]:
    x = y
    dividers = []
    for x in range(2, x):
        if (y/x).is_integer():
            dividers.append(x)
    if len(dividers) < 1:
        primes.append(y)
print("\n"+str(checkMe)+" has "+str(len(primes))+" primes")
print(primes)

希望这对您有所帮助,再见

请阅读python文档,里面有很多内容


可能重复代码中这一行的更改,对于范围为2的x1,x:if y/x1.is_integer:我认为说他们可以通过谷歌搜索找到解决方案是不合理的批评。算法很难学习,我们在这里提供帮助。
checkMe = range(1, 100)
primes = []
for y in checkMe[1:]:
    x = y
    dividers = []
    for x in range(2, x):
        if (y/x).is_integer():
            dividers.append(x)
    if len(dividers) < 1:
        primes.append(y)
print("\n"+str(checkMe)+" has "+str(len(primes))+" primes")
print(primes)
check_me = range(2, 100)

primes = []
for i in check_me:
    for j in range(2, i):
        if not i % j:
            break
    else:
        primes.append(i)

print(f'{check_me} as {len(primes)} primes\n', *primes)
# range(2, 100) as 25 primes
# 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97