Python 实现半素数判定函数 (isSemiprime)
以下是正确的isSemiprime函数的实现:
def isPrime(num):
if num < 2:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True
def isSemiprime(n):
prime_factors = []
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
if isPrime(i) and isPrime(n // i):
prime_factors.append(i)
return len(prime_factors) == 1
# Testing the isSemiprime function with provided test cases
assert isSemiprime(6) == True
assert isSemiprime(9) == True
assert isSemiprime(1) == False
assert isSemiprime(7) == False
assert isSemiprime(12) == False
isPrime函数用于判断一个数num是否为素数。它从2到num的平方根遍历并检查是否存在除了1和本身以外的因子。如果找到因子,函数返回False,表示num不是素数。如果没有找到因子,函数返回True,表示num是素数。
isSemiprime函数用于判断一个数n是否为半素数。它从2到n的平方根遍历并检查是否存在一个因子i,使得i和n // i都是素数。如果只找到一个这样的因子,函数返回True,表示n是半素数。否则,返回False。
提供的测试案例现在已经包含在最后并应该能够成功通过。非常抱歉之前的错误回答造成的困惑。
原文地址: https://www.cveoy.top/t/topic/SVn 著作权归作者所有。请勿转载和采集!