Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python3
- import fractions
- def ify(s):
- if s == '-':
- return -1
- elif s == '0':
- return 0
- else:
- return 1
- def add(a, b):
- return a[0] * b[1] + b[0] * a[1], a[1] * b[1]
- def mul(a, b):
- return a[0] * b[0], a[1] * b[1]
- def solve():
- a1_s, a2_s = input().split()
- b1_s, b2_s = input().split()
- c1_s, c2_s = input().split()
- d1_s, d2_s = input().split()
- sa = ify(a1_s[0])
- a1 = int(a1_s[1:])
- a2 = int(a2_s)
- sb = ify(b1_s[0])
- b1 = int(b1_s[1:])
- b2 = int(b2_s)
- sc = ify(c1_s[0])
- c1 = int(c1_s[1:])
- c2 = int(c2_s)
- sd = ify(d1_s[0])
- d1 = int(d1_s[1:])
- d2 = int(d2_s)
- a = sa * (2 ** a1), 3 ** a2
- b = sb * b1, 3 ** b2
- c = sc * c1, 3 ** c2
- d = sd * (2 ** d1), 3 ** d2
- answ = set()
- for s in range(-1, 2, 2):
- for p2 in range(d1 + 1):
- for q2 in range(a1 + 1):
- for p3 in range(max(a2, b2, c2, d2) + 1):
- for q3 in range(max(a2, b2, c2, d2) + 1):
- p = s * (2 ** p2) * (3 ** p3)
- q = (2 ** p3) * (3 ** q3)
- f = (p, q)
- ans = mul(a, mul(mul(f, f), f))
- ans = add(ans, mul(b, mul(f, f)))
- ans = add(ans, mul(c, f))
- ans = add(ans, d)
- if ans[0] == 0:
- answ.add(fractions.Fraction(f[0], f[1]))
- print(len(answ), *answ)
- t = int(input())
- for i in range(t):
- solve()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement