P1618 三连击(升级版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
a,b,c=map(int,input().split())
cnt=0
def go(x,arr): #创建列表来判断三个三位数上数位是否有重复的出现
arr[x%10]=True #个位
arr[x//10%10]=True #十位
arr[x//100]=True #百位
def check(x,y,z):
arr=[0 for _ in range(10)] #每次判断完一行时重置数组
if y>999 or z>999: #大于999的数不可能出现
return False
go(x,arr)
go(y,arr)
go(z,arr)
for i in range(1,10): #从1开始
if arr[i]==0: #只要出现未使用的数字就说明1~9这9个数出现重复情况
return False
return True #均满足条件后说明这行的三个数符号条件
for x in range(123,987+1): #从123开始,到987结束
if a==0 or b==0 or c==0:
break
if x*b%a!=0 or x*c%a!=0: #x*b%a和x*c%a要是出现余数则不用继续判断了,直接往后判断
continue
y=x*b//a
z=x*c//a
if check(x,y,z):
print(x,y,z,end=" ")
print("")
cnt+=1
if cnt==0:
print('No!!!')