python怎么输入正整数_python判断所输入的任意一个正整数是否为素数的两种方法...

素数(也称质数),是指除了1和该数本身,不能被任何正整数整除的正整数。判断一个正整数m是否为素数,只要判断m可否被2~根号m之中的任何一个正整数整除,如果m不能被此范围中任何一个正整数整除,m即为素数,否则m为合数。

方法一:(利用for循环和break语句)

import math

m = int(input("请输入一个整数(>1):"))

k = int(math.sqrt(m))

for i in range(2, k+2):

if m % i == 0:

break #可以整除,肯定不是素数,结束循环

if i == k+1: print(m, "是素数!")

else: print(m, "是合数!")

方法二:(利用while循环和bool变量)

import math

m = int(input("请输入一个整数(>1):"))

k = int(math.sqrt(m))

flag = True #假设输入的整数为素数

i = 2

while (i <= k and flag == True):

if (m % i == 0): flag = False #可以整除,肯定不是素数,结束循环

else: i += 1

if (flag == True): print(m, "是素数!")

else: print(m, "是合数!")

例:打印100~200间的全部素数,每行输出10个

import math;n=0

for m in range(101,201,2):

k = int(math.sqrt(m))

for i in range(2,k+2):

if m % i == 0:break

if i == k+1:

if n % 10 == 0:print()

print('%d' % m,end=' ')

n += 1

以上这篇python判断所输入的任意一个正整数是否为素数的两种方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是Python代码,用于判断一个正整数是否素数: ```python num = int(input("请输入一个正整数:")) if num <= 1: print(num, "不是素数") else: for i in range(2, num): if num % i == : print(num, "不是素数") break else: print(num, "是素数") ``` 代码中,首先通过`input()`函获取用户输入正整数,然后判断是否小于等于1,若是,则直接输出该不是素数;若不是,则通过`for`循环遍历2到该之间的所有整判断是否能被整除,若能,则输出该不是素数,跳出循环;若不能,则输出该素数。 ### 回答2: 素数是指只能被1和它本身整除的正整数,例如2、3、5、7、11、13等。Python是一种高级编程语言,可以利用它来判断一个正整数是否素数。 要判断一个正整数是否素数,我们可以使用一个循环从2开始,一直到该正整数的平方根为止,逐个判断能否被整除。如果该正整数能被任意一个小于等于它平方根的正整数整除,那么它就不是素数。否则,它就是素数。 下面是使用Python编写的判断素数的程序: ``` import math def is_prime(n): if n < 2: # 判断n是否小于2 return False for i in range(2, int(math.sqrt(n))+1): # 循环判断n是否能被任何小于等于它平方根的正整数整除 if n % i == 0: return False return True # 测试程序 while True: num = input("请输入一个正整数(按q退出):") if num == 'q': break if num.isdigit(): num = int(num) if is_prime(num): print("{}是素数。".format(num)) else: print("{}不是素数。".format(num)) else: print("输入有误,请重新输入。") ``` 在该程序中,我们首先定义了一个名为is_prime的函,它接受一个正整数n作为参,返回一个布尔值,表示该正整数是否素数。函中,我们首先判断n是否小于2,因为小于2的正整数都不是素数。然后,我们循环从2开始,一直到n的平方根为止,逐个判断n能否被整除。如果能被整除,那么返回False。否则,返回True。 测试程序中,我们使用一个while循环不停地让用户输入一个正整数,直到用户输入q为止。如果输入的是一个合法的正整数,那么我们调用is_prime函判断是否素数,并输出相应的结果。如果输入的不是合法的正整数,那么输出输入有误的提示信息。 除了上述方法,也可以用更加高效的算法判断一个是否素数,如埃拉托色尼筛法、欧拉函等,但这需要更深入的算法知识,本文不再深入讨论。 ### 回答3: 素数是只能被1和它本身整除的正整数,因此我们可以逐个检查输入正整数能否被2到其平方根之间的正整数整除来判断是否素数。 我们可以先用input函获取用户输入正整数,然后编写一个来进行判断。该函可以命名为is_prime,它需要一个,即需要判断是否素数正整数。 在函内部,我们可以首先判断是否小于等于1。因为1既不是质也不是合,所以如果输入小于等于1,则直接返回False。 然后,我们可以使用一个for循环从2到该的平方根,依次判断是否能被这些整除。如果能被整除,则说明不是素数,可以直接返回False。 如果循环结束后,都没有找到能整除该,则说明该素数,可以返回True。 下面是完整的代码实现: ``` import math def is_prime(num): if num <= 1: return False for i in range(2, int(math.sqrt(num))+1): if num % i == 0: return False return True number = int(input("请输入一个正整数:")) if is_prime(number): print(f"{number}是素数") else: print(f"{number}不是素数") ``` 在上面的代码中,我们首先引入了math库,用于计算平方根。然后调用了is_prime函进行判断,并根据函返回值输出判断结果。 需要注意的是,在输入正整数之前,我们可以先使用try-except语句对用户输入据进行合法性判断,以避免程序出现异常。同时,如果需要判断多个是否素数,可以用循环不断调用is_prime函进行判断

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值