问题描述
def EucAlg(x,y):
mod = x%y
print (mod)
while x % y != 0:
print (y%(mod))
mod = y%(mod)
当“ mod = 0”时,我只想打印0之前的最后一个数字
EucAlg(1112,695)
解决方法
您实际上并不需要所有代码。您只需跟踪> y
[1] 9 72 49 70 16 3 3 4 81 6 43 7 12 9 3
is.integer(sqrt(y))
[1] FALSE
> ifelse(is.integer(sqrt(y)),y)
[1] 9
> ifelse(sqrt(y)==is.integer(y),y)
[1] 9 72 49 70 16 3 3 4 81 6 43 7 12 9 3
和x
并在y
为零时中断即可。它使算法背后的思想更加清晰:
y