fizzBuzz数字1到100:(x3)Fizz,(x5)Buzz,(x3和x5)fizzBuzz以及python中的素数

2024-05-15 15:33:49 发布

您现在位置:Python中文网/ 问答频道 /正文

以下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)```

Tags: and代码in内容forifrangeprime
1条回答
网友
1楼 · 发布于 2024-05-15 15:33:49

正如@toRex在评论中提到的,您正在使用以下条件检查一个数字是否为素数:

x%x==0 and x%2==1

请注意x%x==0总是正确的。所以基本上你只需要检查一个数字是否是奇数,然后把它打印成素数。通常,有许多方法可以检查数字是否为素数,尤其是在python中。例如,您可以使用Checking if a number is a prime number in Python并从此处获取第一个算法:

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

相关问题 更多 >