以下是正确的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,使得in // i都是素数。如果只找到一个这样的因子,函数返回True,表示n是半素数。否则,返回False

提供的测试案例现在已经包含在最后并应该能够成功通过。非常抱歉之前的错误回答造成的困惑。

Python 实现半素数判定函数 (isSemiprime)

原文地址: https://www.cveoy.top/t/topic/SVn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录