素数函数

2024-09-27 09:25:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python中的一个练习有问题。 我应该得到一个函数是\素数(n):用来定义素数。 程序应给出3种类型的输出; 1n是乘法恒等式 2n不是质数(n*d=n)。 三。n是素数。你知道吗

我有一个问题得到2。正确地工作 我的输出是: 12不是素数。(2,“*”,6,“=”,12)

但应该是

12不是质数(2*6=12)。你知道吗

我的代码

def is_prime(n):
    msg1 = "is the multiplicative identity."
    msg2 = "is not a prime number."
    msg3 = "is a prime."
    if n == 1:
        return str(n) + msg1

    for d in range(2, n):
        msg4 = (d, "*", n // d, "=", n)
        pass
        if (n % d) == 0:
         return str(n) + " " + msg2 + str(msg4)

else:
    return str(n) + " " + msg3

print(is_prime(12))

Tags: 函数程序类型returnif定义isprime
2条回答

请使用下面的代码,因为您需要使用str()函数来打印预期的结果。你知道吗

msg4 = str(d) + '*' + str(n // d) +'='+ str(n)

如果您想使用()的话,下面是完整的代码。你知道吗

def is_prime(n):
    msg1 = "is the multiplicative identity."
    msg2 = "is not a prime number."
    msg3 = "is a prime."
    if n == 1:
        return str(n) + msg1

    for d in range(2, n):
        msg4 = "(" + str(d) + '*' + str(n // d) +'='+ str(n)+ ")"
        pass
        if (n % d) == 0:
            return str(n) + " " + msg2 + str(msg4)

        else:
            return str(n) + " " + msg3

使用string formatting返回而不是串联。你知道吗

这是使用f string格式:

return f'{n} {msg2} {msg4}'

括号{}中的任何内容都将像标准Python应该或将返回的那样进行计算。它将自己转换成一个字符串,因此您不需要对它进行str()。你知道吗

所有代码:

def is_prime(n):
    msg1 = "is the multiplicative identity."
    msg2 = "is not a prime number"
    msg3 = "is a prime."
    if n == 1:
        return f'{n} {msg1}'
    for d in range(2, n):
        msg4 = f'({d} * {n // d} = {n})'
        if (n % d) == 0:
            return f'{n} {msg2} {msg4}.'
    return f'{n} {msg3}'

print(is_prime(12))

相关问题 更多 >

    热门问题