社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Hellwishween • 6 年前 • 1586 次点击  

我一生中第一次从零开始学习编程。我正在学习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
 
1586 次点击  
文章 [ 4 ]  |  最新文章 6 年前