Ben de cevabları paylaşıyorum
[[594, 27, 16038], [17082, 3, 5694], [20457, 3, 6819], [20754, 3, 6918], [21658, 3094, 7], [8169, 3, 24507], [27504, 3, 9168]]
Ben bu kodu daha dün yazmıştım ama çalışması biraz uzun sürüyor diye atmamıştım. Şimdi 5dk açık bıraktım tamamlandı.
import itertools
ayıraçlar = list(itertools.combinations(range(10), 2))
sayı_listesi = [str(i) for i in range(10)]
sayı_grupları = itertools.permutations(sayı_listesi, 10)
durum = [0, 0, 0]
sonuç = []
sayaç = 0
for sayılar in sayı_grupları:
sayaç += 1
for ayıraç in ayıraçlar:
try:
durum[0] = int("".join(sayılar[:ayıraç[0]]))
durum[1] = int("".join(sayılar[ayıraç[0]:ayıraç[1]]))
durum[2] = int("".join(sayılar[ayıraç[1]:]))
except ValueError: continue
## print(durum)
geç = 0
for i in durum:
if i==0:
geç = 1
break
if geç: continue
if durum[0] * durum[1] == durum[2]:
if durum[0] % durum[1] == 0 or durum[1] % durum[0] == 0:
sonuç.append(durum.copy())
continue
if durum[0] * durum[2] == durum[1]:
if durum[0] % durum[2] == 0 or durum[2] % durum[0] == 0:
sonuç.append(durum.copy())
continue
if durum[2] * durum[1] == durum[0]:
if durum[2] % durum[1] == 0 or durum[1] % durum[2] == 0:
sonuç.append(durum.copy())
continue