又签到失败了。看了别人博客的代码。https://blog.csdn.net/qq_49638570/article/details/116276005
构造法。
记
z = math.pow(10, c-1)
x = math.pow(10, a-1)+math.pow(10, c-1)
y = math.pow(10, b-1)
1 如果a不等于c,题目说c < min(a, b),
所以math.pow(10, a-1)% z =0
并且 math.pow(10, a-1)% z >= 10
x/z = (math.pow(10, a-1)+ z)/z = math.pow(10, a-c) + 1
x,y 的最大公因子为 z,除掉因子之后x, y大概是101, 10, 或者10...001, 10..0.类似这种形式的,必定互质。
也就是说x, y的最大公因子是z = math.pow(10, c-1)
2 如果a等于c,
x = math.pow(10, a-1)+math.pow(10, c-1) = 20...0。中间若干个0
因为z等于a.
所以math.pow(10, a-1) + math.pow(10, c-1) = math.pow(10, c-1) + math.pow(10, c-1) = 2z
固 x/z=( math.pow(10, a-1) + math.pow(10, c-1) )/ math.pow(10, c-1) = 2z/z = 2
如果c =b;则 x / z = 2, y/z = 1,满足题意
如果c<b. 则 x/ z = 2, y/z = 10...0. 最大公共因子为z*2, 因为z = 10...0,乘以二变成20...0, 不会增加位数。满足题意。
import math n = int(input()) for df in range(n): a, b, c = map(int, input().split()) x = math.pow(10, a-1) + math.pow(10, c-1) y = math.pow(10, b - 1) print(int(x), int(y))