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后面

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值