2016-10-16 9 views
0
def get_divs(z): 
     return [i for i in range(1, z) if z % i == 0] 

def gcd(x, y): 
     x_div=get_divs(x) 
     y_div=get_divs(y) 
     cd=set(x_div).intersection(y_div) 
     gcd=cd[-1] 
     print("The GCD of",x,"and",y,"is",gcd) 
     return 1 

私は、ユーザ入力の正の整数(x、y)の最大公約数(GCD)を計算するためにこのプログラムを取得しようとしています。 set関数は、インデックスを付けることのできるリストを返しません。どのように私はGCDを見つけることができますか?最大公約数(GCD)

+0

'list(cd)'を使用してセットをリストに変換してみてください。あるいは、もし 'cd'の最大要素が必要なら'max(cd)'を使います。 – wflynny

答えて

-1

ここで、アルゴはどのように見えますか。

findGCD(int firstNum, int secondNum){ 
int smaller; int bigger;int remainder; 
if(firstNum < secondNum) { 
    smaller = firstNum; 
    bigger = secondNum; 
} 
else { 
    smaller = secondNum; 
    bigger = firstNum; 
} 

while(true) { 
    remainder = bigger % smaller; 
    if(remainder == 0) { 
     break; 
    } 
    else { 
     bigger = smaller; 
     smaller = remainder; 
    } 
} 
return smaller; 
} 
関連する問題