当前位置:   article > 正文

python判断素数的几种方式

python判断素数


素数的定义:素数n只能被1和它本身整除

换句话说:素数不能被2~n-1间的任意一个数整除

方法一

用2~n-1依次做求余运算(优点:容易想到 )

定义一个标志变量yes

#定义一个标志变量,初始化为1,默认n是素数
yes=1
for i in range(2,n):
    if n%i==0:
       yes=0
       break

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

如果yes=1没有变化,则说明在2~n-1之间没有一个数可以整除n,则可以判断n是素数

完整代码

#s素数判断代码——方式一
n = int(input("输入一个正整数:"))
yes= 1
for i in range(2,n):
    if n%i==0:
       yes=0
       break
if yes:
   print(n,'是素数')
else:
   print(n,'不是素数')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
#素数判断方式二
m = int(input('输入一个正整数:'))
i =2
while i < m:
     if m%i==0:
        break
     i+=1
if i>m:
   print(m,'是素数')
else:
   print(m,'不是素数')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

方法二

方法一的第二种形式的化简,可以在2~m/2之中判断

#判断素数
m = int(input('请输入一个正整数:'))
i =2
k = m/2
while i <=k:
      if m%i==0
         break
      i+=1
if i>k:
   print(m,'是素数')
else:
   print(m,'不是素数')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

方法三

再次化简

#判断素数
from math import sqrt
n = int(input('请输入一个正整数:'))
i = 2
k = int(sqrt(n))
while i <=k:
      if n%i==0:
         break
      i+=1
if i >k:
   print(n,'是素数')
else:
   print(n,'不是素数')

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

学习资源推荐

除了上述分享,如果你也喜欢编程,想通过学习Python获取更高薪资,这里给大家分享一份Python学习资料。

这里给大家展示一下我进的最近接单的截图

私单

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/540035
推荐阅读
相关标签