定义一个名为isPinme(anumaber)的西数,参数为一个正整数。调用这个函数,能够判断一个正整数是否为 质数,是质数则返回 True,不是质数则返回 False。在同一源程序中,使用键盘输入一个正整数,验证该函数是否能够正确判断输入数为质数。
def is_prime(n):
"""判断n是否为素数"""
if n == 2:
return True
# 遍历2到n/2,如果有能被n整除,说明不是素数,直接返回False
for i in range(2, n // 2 + 1):
if n % i == 0:
return False
# 遍历完之后没有return,说明是素数,返回True
return True
n = int(input('请输入一个正整数:'))
print(is_prime(n))
不知道你这个问题是否已经解决, 如果还没有解决的话:有帮助的话,请点采纳该答案~
解决方案:
首先给出判断一个数是否为质数的函数 isPrime(number) 的实现:
def isPrime(number):
if number <= 1:
return False
for i in range(2, int(number**(1/2))+1):
if number % i == 0:
return False
return True
该函数首先处理特殊情况,如果数字 number 小于等于 1,直接返回 False。否则遍历从 2 开始到 number 的平方根之间的数字 i,如果 i 是 number 的约数,则该数字不是质数,返回 False。如果遍历完所有数字,都没有找到约数,说明该数字是质数,返回 True。
接着,我们使用键盘输入读取一个正整数,调用上面的 isPrime 函数判断该数字是否为质数:
def test_isPrime():
number = int(input("请输入一个正整数:"))
if isPrime(number):
print("{}是质数".format(number))
else:
print("{}不是质数".format(number))
test_isPrime()
该函数首先使用 input 函数获取用户输入的字符串,我们需要使用 int 函数将字符串转化为整数。接着调用 isPrime 函数判断该数字是否为质数,并输出结果。
完整代码如下:
def isPrime(number):
if number <= 1:
return False
for i in range(2, int(number**(1/2))+1):
if number % i == 0:
return False
return True
def test_isPrime():
number = int(input("请输入一个正整数:"))
if isPrime(number):
print("{}是质数".format(number))
else:
print("{}不是质数".format(number))
test_isPrime()
测试结果:
请输入一个正整数:37
37是质数
请输入一个正整数:200
200不是质数
注意:
本题目的重点是如何判断一个正整数是否为质数,因此我们只提供了 isPrime 函数的代码实现,而没有考虑各种不同的测试情况。如果想要更完整的代码实现,需要进一步考虑测试数据的完备性和正确性。