2024-05-15 15:33:49 发布
网友
以下python代码中需要更正的内容是什么?
91不是质数,但如何校正
for x in range(100): if x%3==0: print ("Fizz", x) elif x%5==0: print ("buzz",x) elif x%3==0 and x%5 == 0: print ("FizzBuzz",x) elif x%x==0 and x%2==1: print ("Prime number",x)```
正如@toRex在评论中提到的,您正在使用以下条件检查一个数字是否为素数:
x%x==0 and x%2==1
请注意x%x==0总是正确的。所以基本上你只需要检查一个数字是否是奇数,然后把它打印成素数。通常,有许多方法可以检查数字是否为素数,尤其是在python中。例如,您可以使用Checking if a number is a prime number in Python并从此处获取第一个算法:
x%x==0
from math import sqrt from itertools import count, islice def is_prime(n): return n > 1 and all(n % i for i in islice(count(2), int(sqrt(n)-1)))
然后打电话:
for x in range(100): if x%3==0 and x%5 == 0: print ("FizzBuzz",x) elif x%3==0: print ("Fizz", x) elif x%5==0: print ("buzz",x) elif is_prime(x): print ("Prime number",x)
将输出预期的输出。还请注意,我已经翻转了条件的顺序,首先检查一个数字是否为FizzBuzz,然后才检查他是一个嘶嘶声还是一个嗡嗡声。否则fizz号将被视为fizz,而不是预期的FizzBuzz
FizzBuzz
fizz
正如@toRex在评论中提到的,您正在使用以下条件检查一个数字是否为素数:
请注意
x%x==0
总是正确的。所以基本上你只需要检查一个数字是否是奇数,然后把它打印成素数。通常,有许多方法可以检查数字是否为素数,尤其是在python中。例如,您可以使用Checking if a number is a prime number in Python并从此处获取第一个算法:然后打电话:
将输出预期的输出。还请注意,我已经翻转了条件的顺序,首先检查一个数字是否为
FizzBuzz
,然后才检查他是一个嘶嘶声还是一个嗡嗡声。否则fizz
号将被视为fizz
,而不是预期的FizzBuzz
相关问题 更多 >
编程相关推荐