查找除自身以外的数字最大除数的python函数

时间:2019-11-16 11:20:35

标签: python python-3.x

当我编写此代码时:

n = int(input('num: '))

for i in range(2, n):
    if n%i == 0:
        a = i
print(a)

它可以正常工作。

但这会带来问题。它说

  

分配前引用的局部变量a

def largestDivisor(n):
    for i in range(2, n):
        if n%i == 0:
            a = i
    return a

我该如何解决?

3 个答案:

答案 0 :(得分:2)

如果您像largestDivisor(2)这样打来电话,就不会进入for,不会进入if,而且永远也不会定义a,请在开始时进行定义:

def largestDivisor(n):
    a = 1
    for i in range(2, n):
        if n % i == 0:
            a = i
    return a

答案 1 :(得分:0)

如果条件“ n%i == 0”从不为真,则变量“ a”将不存在,因此必须在循环之前对其进行初始化。

def largestDivisor(n):
    a = 1
    for i in range(2, n):
        if n%i == 0:
            a = i
    return a

答案 2 :(得分:0)

def largestDivisor(n):
    a = 1
    for i in range(2,n):
        if n%i==0:
            a=i
    return a