Python 在这个代码行中,95怎么会是素数?
我有一个家庭作业要我找出素数,直到找到一个给定的数,然后我把这个代码写出来作为答案Python 在这个代码行中,95怎么会是素数?,python,function,while-loop,Python,Function,While Loop,我有一个家庭作业要我找出素数,直到找到一个给定的数,然后我把这个代码写出来作为答案 def count_primes(num): primes = [2] x = 3 if num < 2: return 0 while x <= num: for y in range(3,x,2): if x%y == 0: x += 2 else:
def count_primes(num):
primes = [2]
x = 3
if num < 2:
return 0
while x <= num:
for y in range(3,x,2):
if x%y == 0:
x += 2
else:
primes.append(x)
x += 2
print(primes)
正如我在输出中看到的101一样,我在“第9行”之后添加了break
命令行,这也让我放弃了95作为输出,即:
[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]
那么,在这个代码中,
break
line blocked 95是一个素数,这是怎么回事呢?这种情况的发生是因为你从来没有重置过y值。
当93可以被31整除时,你把ox的值增加2
下一个比较是95%33,它永远不会回到5
def count_primes(num):
primes = [2]
x = 3
if num < 2:
return 0
while x <= num:
for y in range(3, x, 2):
if x % y == 0:
x += 2
break
else:
primes.append(x)
x += 2
print(primes)
def count_prime(num):
素数=[2]
x=3
如果num<2:
返回0
当x看到这个可爱的博客寻求帮助时。你在哪里困惑?您已经就您的计划提出了一个整体性问题,但手头的问题来自内部逻辑。正如发布指南所告诉您的,我们希望您已经尝试自己解决这个问题,但我在您的发布中没有看到任何证据。@Prune我已经解决了在第10行写入“break”的问题,我不希望您调试我的代码行。我只是想问一下“break”命令背后的逻辑,以了解为什么会发生这种情况。下次请尽量友好一些。在壳牌公司进行了几次试验后,我可以证实这一点,这是我一直在寻找的绝对答案。非常感谢
def count_primes(num):
primes = [2]
x = 3
if num < 2:
return 0
while x <= num:
for y in range(3, x, 2):
if x % y == 0:
x += 2
break
else:
primes.append(x)
x += 2
print(primes)