python 计算质数

Python计算连续的5个质数

描述:

获得用户输入数字N,计算并输出从N开始的5个质数,单行输出,质数间用逗号,分割。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

注意:需要考虑用户输入的数字N可能是浮点数,应对输入取整数;最后一个输出后不用逗号。

解决步骤

1,如何判断质数

def prime(m):
		for i in range(2,m):
			if m % i ==0:
				break
		else:
			print(m,end=",")

在这里,利用了for-else的结构,还有break语句实现了:如果是质数,将输出这个功能

2,根据要求输出5个

def prime(m):
	n=1
	while n<6 :
		for i in range(2,m):
			if m % i ==0:
				m=m+1
				break
		else:
			n = n +1
			print(m,end=",")
			m=m+1
m= eval(input())
prime(m)

这里有个问题,就是末尾的",".这点让人不愉快.
但也可以创建一个list[], 把5个数字放进去, 最后再按格式输出.

3,答案的思路

def prime(m):
    for i in range(2,m):
        if m % i == 0:
            return False
    return True

n = eval(input())
m = int(n)
m = m+1 if m < n else m
count = 5

while count > 0:
    if prime(m):
        if count > 1:
            print(m, end=",")
        else:
            print(m, end="")
        count -= 1 
    m += 1

这段代码的优秀之处,是内部高度的耦合.模块之间耦合度很低.
它的函数只判断了"是否为质数",而输出/数量等都不关心,返回值为True/False.
还有一些很不错的细节:如

m = m+1 if m < n else m

自己的错误

while函数使用有误,一开始的代码

def prime(m):
	n=1
	while(n==5):
		for i in range(2,m):
			if m % i ==0:
				m=m+1
				break
		else:
				.......

导致于while判断一直为False,无法进入循环语句.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值