我正在尝试制作一个程序,打印给定范围内的所有友好数字对(不包括反转已打印的数字对,如220,284已打印,284,220无法打印)。下面是我的代码:
def factorgiver(number):
num=1
factors=[]
while num<number:
if number%num==0:
factors.append(num)
num+=1
else:
num+=1
return(factors)
def isamicable(number1, number2):
q1=factorgiver(number1)
q2=factorgiver(number2)
w1=0
w2=0
for i in q1:
w1+=i
for i in q2:
w2+=i
print(w1, w2)
if w1==number2 and w2==number1:
return True
else:
return False
range1=int(input("Enter the first number of the range: "))
range2=int(input("Enter the last number of the range: "))
range2+=1
for i in range(range1, range2):
w=i+1
for q in range(w, range2):
if isamicable(i, q):
print(i, q)
我已经检查了这两个函数,它们都按预期工作,但是当我运行代码时,它还包括低于给定范围的数字,并且每次都会给出不同的输出
在循环的根级别和函数中都使用了变量
i
。尝试通过将for循环放入一个只从根级别调用的函数来分离作用域相关问题 更多 >
编程相关推荐