我试图找到两个数字之间的最大公约数。我的测试数字是45和81.虽然gcd是9,但它只返回3这是一个除数但它不会继续返回9.我很接近,但我想不出一种让它返回更高的方法号。
def GCD(num1,num2):
for i in range(2,num1+1 and num2+1):
if(num1%i==0 and num2%i==0):
print("The Greatest Common Denominator between", num1,"and", num2, "is ", end="")
return i
答案 0 :(得分:1)
gcd是一个内置函数,你可以简单地做到
from fractions import gcd
gcd(45,81)
话虽这么说,我仍然会解释你的错误是什么,因为它很难理解。问题是你在找到第一个公分母后返回,它打破了循环,所以你永远不会进行测试9.解决方案是如此经历从最大到最小的范围,只需用[::-1]
反转它。此外,print
和return
应具有相同的缩进级别。
def GCD(num1,num2):
for i in range(2,num1+1 and num2+1)[::-1]:
if(num1%i==0 and num2%i==0):
print("The Greatest Common Denominator between {0} and {1} is {2}".format(num1,num2,i), end="")
return i
另外,技术上%
是将变量放入字符串的过时方法,现在推荐使用format()
答案 1 :(得分:0)
#include
使用命名空间标准;
int main() {
results="hide"
}