【问题标题】:How can you print the prime numbers from 0 to 100 in python如何在python中打印从0到100的素数
【发布时间】:2019-08-31 20:04:25
【问题描述】:

我正在编写一个小程序来查找从 0 到用户想要的任何数字范围内的所有素数。我应该如何修复我的代码?

我尝试交换循环位置和算法,但没有成功

g=int(input("type"))
def check_prime(g):
    if(g<2):
        return False
    for x in range(2, g+1):
        v=int(math.sqrt(x))
        if(x%v==0):
            return False
        return True

if check_prime(g):
 print(x)

我希望当用户输入 g 时,他们会得到从 0 到 g 的所有质数,并且程序会告诉他们找到了多少质数

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    这很简单,下面的代码将返回素数及其值。

    g=int(input("type"))
    
    def check_prime(g):
      count = 0
      primes = []
      for number in range(g+1): #considering 'g' is inclusive
        primes.append(number)
        count += 1
        if(number < 2 or number%2 == 0):
            primes = primes[:-1]
            count -= 1
            continue
        for x in range(3, number, 2):
          if (number % x) == 0:
            primes = primes[:-1]
            count -= 1
            break
    
      return count, primes
    
    print (check_prime(g))
    

    【讨论】:

    • 这行代码是什么意思:“primes = primes[:-1]”。它是消除非素数的代码吗?
    • 如果它不是一个素数,这一行简单地删除了在素数列表中添加的最新数字。它基本上删除了最后一个索引处的元素。您也可以使用“primes.pop(-1)”来代替。
    猜你喜欢
    • 2011-07-09
    • 2023-04-06
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    相关资源
    最近更新 更多