gpt4 book ai didi

python - 检查两个数字是否可以相同的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:05:41 25 4
gpt4 key购买 nike

您好,我必须作为任务来回答这个问题。我已经完成了代码,但我没有得到满分,因为显然我缺少一些条件

给定两个整数 AA 和 BB,确定是否可以通过应用以下所示的任意数量的操作来执行相同的操作:

  • 将数字 AA 乘以 2。

  • 将 BB 数乘以 2。

如果为真打印“felizmil”,否则输出“tristemil”

代码

def ___gcd(a,b): 
if (a == 0 or b == 0):
return 0
if (a == b):
return a
if (a > b):
return ___gcd(a-b, b)
return ___gcd(a, b-a)

def lcmOfArray(arr,n):
ans = arr[0]
for i in range(1,n):
ans = (arr[i]*ans)/___gcd(arr[i], ans)
return ans
def checkArray(arr, num, n, m):
lcm = lcmOfArray(arr, n)
for i in range(n):
val = lcm/arr[i]
for j in range(m and val!=1):
while (val % num[j] == 0):
val = val/num[j]
if (val != 1):
return 0
return 1
arr=list(map(int,raw_input().split()))
num = [2]
n = len(arr)
m = len(num)
if 0 in arr:
print("tristemil")
else:
if(checkArray(arr, num, n, m)):
print("felizmil")
else:
print("tristemil")

例子-->3 5 输出:tristemil14 7 输出:felizmil

我不知道我遗漏了哪些案例/条件,非常感谢您的帮助。非常感谢:D

最佳答案

我们可以做到:

def are_equal(a, b):
if a > b:
a, b = b, a

if a == 0:
return b == 0

while a < b:
a *= 2

return a == b


if are_equal(2, 4):
print('felizmil')
else:
print('tristemil')


if are_equal(2, 3):
print('felizmil')
else:
print('tristemil')


assert are_equal(0, 0) == True
assert are_equal(0, 1) == False
assert are_equal(1, 0) == False
assert are_equal(1, 2) == True
assert are_equal(2, 1) == True
assert are_equal(2, 2) == True

关于python - 检查两个数字是否可以相同的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58334764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com