我正在尝试编写用于计算任意整数的因数的代码,但是不幸的是,当我运行时,我收到了错误的答案
在这种情况下,我尝试了不定义函数的循环,但得到了结果。相反,当我定义一个函数时,我看不到正确的结果
r = 0
def factor(a):
global r
for i in range(1, a + 1):
if a % i == 0:
r += 1
return r
a = int(input())
factor(a)
例如18
有6
个因素,但我只收到1
。
答案 0 :(得分:0)
这是一个缩进问题:该函数只应在循环完成迭代后返回。
r = 0
def factor(a):
global r
for i in range(1, a + 1):
if a % i == 0:
r += 1
return r
a = 18 # int(input())
factor(a)
输出:
6
答案 1 :(得分:0)
使用打印检查代码。 Python中的缩进很重要。另外,不需要全局。
def factor(a):
r = 0
for i in range(1, a + 1):
if a % i == 0:
print('i', i)
r += 1
return r
a = int(input())
print(factor(a))