假设有四个数a1,a2,b1,b2。
是否存在这样的一个数,使得x和a1的最大公约数是a2,x和b1的最小公倍数是b2,
如果存在,存在几个,分别是多少?
这里是用python实现的
line = input('请输入组数')
line = int(line)
list = []
i = 0
while (1):
if (i >= 4*line):
break
i = i + 1
q = input('请输入:')
list.append(int(q))
print(list)
def maxyueshu(a, b):
# 求最大公约数
if (a < b):
a, b = b, a
temp = b
while (a % b):
temp = a % b
a = b
b = temp
return b
def yueshu_1(a, b):
# 求出和a的最大公约数为1的数,最大到b
arr = []
for i in range(1, b + 1):
if (maxyueshu(a, i) == 1):
arr.append(i)
return arr
def bieshu_1(a, b):
# 求出和a最小公倍数为b的数
arr2 = []
for i in range(1, b + 1):
if (maxyueshu(b / a, b/i) == 1):
arr2.append(i)
return arr2
for i in range(0, len(list), 4):
arr = yueshu_1(list[i] / list[i + 1], list[i + 3]) * list[i + 1]
arr2 = bieshu_1(list[i + 2], list[i + 3])
haha = [i for i in arr if i in arr2]
print("这是那些数", end=str(haha))
print('\n')
print("所以它们的数量是:", end=str(len(haha)))