Py学习  »  Python

检查该数字是否是python中的质数

Hellwishween • 6 年前 • 1582 次点击  

我一生中第一次从零开始学习编程。我正在学习Python语言。我的第一个困难任务是写Algorythm,它检查数字是否是素数。

脚本应该以非常简单的方式工作。输入:

是主(29)

你应该得到这样的输出:

数字29是质数。

数字29不是质数。

我没有在网上查到任何解决方案。我自己做的。我的假设如下:

  1. 在学校里,我记得素数只除以1本身。
  2. “0”和“1”不是质数

所以我写了一个代码,检查给定的数字是否被从2到(数字-1)的所有数字所除。例如,如果给定值为“6”,脚本将首先检查6是否除以2。如果这是真的,这意味着数字不是质数。如果6不除以2,脚本将检查6是否除以3。如果是这样,这意味着数字不是质数。如果是“7”,脚本将检查7/2、7/3、7/4、7/5、7/6。

代码如下:

def is_prime(number):
    if number == 0 or number == 1:
        print(f"The number {number} is NOT the prime number.")
    elif number == 2:
        print(f"The number {number} is the prime number.")
    else:
        for i in range(2, number):
            if number % i == 0:
                check = "is NOT"
                break
            else:
                check = "is"
        print(f"The number {number} {check} the prime number.")

但后来,我意识到了三件事:

  1. 如果数字除以2,肯定不是质数
  2. 如果数字不除以2,则可以除以3或5。
  3. 如果数字不除以2,不除以3,也不除以5,这意味着这个数字是质数。本规则的唯一例外是这三个数字2、3和5。

就这样。所以我写的代码如下

def is_prime(number):
    if number > 1:
        if (number %2 == 0 and number != 2) or (number %3 == 0 and number != 3 ) or(number %5 == 0 and number != 5):
            print(f"The number {number} is NOT the prime number. ")
        else:
            print(f"The number {number} is the prime number. ")

    else:
        print(f"The number {number} is NOT the prime number. ")

我认为两种解决方案都可以。 如果我错了请纠正我 但我想问你,从编程的角度来看,哪种解决方案更好?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39125
 
1582 次点击  
文章 [ 4 ]  |  最新文章 6 年前