python判断正整数是否为素数_Python判断一个整数是否为素数

素数的定义:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数

即只能被1和自己本身整除的数

思路及步骤

给定一个大于2的整数n

令i=2

用n除i,得到余数r

判断r==0是否成立,如果成立则n不是素数,结束算法;如果不成立则将i的值+1仍然用i表示

判断i>(n-1)是否成立,如果成立则n是素数;否则返回第3步

流程图

使用while语句实现

n = int(input("请输入一个数字:"))

i = 2

while True:

if n < 2:

print("请输入一个大于或者等于2的整数")

break

elif n == 2:

print("{}是素数".format(n))

break

elif n > 2:

r = n % i

i += 1

if r == 0 or i > n-1:

if r == 0:

print("{}不是素数".format(n))

break

else:

print("{}是素数".format(n))

break

执行步骤

如果n=1则退出

如果n=2则输出2是素数

如果n=3则按照以下步骤执行

1,i=2 n=3 判断n>2满足条件执行r=3%2=1

2,i增加1 i=3

3,判断r == 0 结果为False  i > n-1 3>3-1 结果为True 整体结果为True继续执行if下面语句

4,判断r==0结果为False则执行else输出3是素数

如果n=4则安之以下步骤执行

1,i=2 n=4判断n>2满足条件 执行r=4%2=0

2,i增加1 i=3

3,判断r==0结果为True整体结果为True无需判断i>n-1整体结果为True

4,  判断r==0所以大于4不是素数

以此类推

输入任何数字只要可以被2至输入的整数之间的任意一个数整除即余数为0则可以判断为非素数

直到被除数增加到与输入的数字一致之间还没有出现可以整数的被除数则判断该数为素数

使用while循环需要把被除数i从2开始没执行一次+1 下面使用for循环实现,i的取值为2至输入的整数n

n = int(input("请输入一个数字:"))

for i in range(2, n):

r = n % i

if r == 0:

print("{}不是素数".format(n))

break

else:

print("{}是素数".format(n))

实现的效果是一样的

本列使用for循环被除数为从2开始至n-1,如果之间有能整数的被除数则可以判断数字不是素数

如果一直到n-1还是没有被整除则认为输入的n为素数

注意else的位置是与for循环同级而不是与if同级,如果以if同级则在第一次循环i=2的时候就通过余数来判断一个数是奇数还是偶数了

注意:在python中else不一定跟在if后也可以写在for后面

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论

打赏作者

weixin_39599342

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值