【问题标题】:Determining Prime numbers in python function [duplicate]在python函数中确定素数[重复]
【发布时间】:2021-12-30 21:42:33
【问题描述】:

如何创建一个python函数来判断用户输入的数字是否为素数?如果是则返回 True,否则返回 False。然后显示指示它是否为素数的消息。

【问题讨论】:

    标签: python python-3.x python-requests


    【解决方案1】:
    def prime_numbers(input_number):
    
      flag = 0
    
      for i in range(2, input_number):
        if input_number % i == 0:
          flag = 1
          break
      if flag == 1:
        return False
      return True
    
    n = int(input('Give any number'))
    is_prime = prime_numbers(n)
    
    if is_prime:
      print('The number is prime')
    
    else:
      print('The number is composite')
    
    

    【讨论】:

    • 您可以使用 for/else 来避免需要该标志。或者只是中途返回。我还建议只检查前 10 个素数的除法,而不是 2 和输入之间的所有数字
    【解决方案2】:

    这是一个简单的脚本,它检查 num 是否可以被 2 到 num - 1 之间的任何数字整除。如果我们在该范围内找到一个因子,则该数字不是素数,因此我们将 flag 设置为 True 并跳出循环。

    num = int(input("Enter a number: "))
    
    flag = False
    
    # prime numbers are greater than 1
    if num > 1:
        # check for factors
        for i in range(2, num):
            if (num % i) == 0:
                # if factor is found, set flag to True
                flag = True
                # break out of loop
                break
    
    # check if flag is True
    if flag:
        print(num, "is not a prime number")
    else:
        print(num, "is a prime number")
    

    【讨论】:

    • 它需要是一个函数先生。
    【解决方案3】:
    def isprime(n):
        '''check if integer n is a prime'''
        # make sure n is a positive integer
        n = abs(int(n))
        # 0 and 1 are not primes
        if n < 2:
            return False
        # 2 is the only even prime number
        if n == 2: 
            return True    
        # all other even numbers are not primes
        if not n & 1: 
            return False
        # range starts with 3 and only needs to go up the squareroot of n
        # for all odd numbers
        for x in range(3, int(n**0.5)+1, 2):
            if n % x == 0:
                return False
        return True
    

    从这里得到它: https://www.daniweb.com/programming/software-development/code/216880/check-if-a-number-is-a-prime-number-python

    【讨论】:

      猜你喜欢
      • 2019-03-19
      • 1970-01-01
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 2019-05-03
      • 2020-11-14
      • 2015-08-03
      • 2021-07-20
      相关资源
      最近更新 更多