|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- def isprime(n):
- if n < 2:
- return False
- if n % 2 == 0 and n > 2:
- return False
- for i in range(2, int(n**0.5)):
- if n % i == 0:
- return False
- return True
复制代码
这个函数的目的是检查一个数是否是质数。质数定义为大于1的自然数,且只能被1和它本身整除。函数实现有一个小错误,正确的实现如下:
- def isprime(n):
- if n < 2:
- return False
- if n % 2 == 0 and n > 2:
- return False
- for i in range(3, int(n**0.5) + 1, 2):
- if n % i == 0:
- return False
- return True
复制代码
在 for 循环中,我已经修改了range()的参数。原先的实现漏掉了一个加1操作,导致在检查平方根附近的因子时出现问题。修改后的代码可以正确判断25不是质数:
|
|