Skip to content

Instantly share code, notes, and snippets.

@timendum
Last active March 3, 2022 16:09
Show Gist options
  • Save timendum/c85fd487128d4bc610131781668c7993 to your computer and use it in GitHub Desktop.
Save timendum/c85fd487128d4bc610131781668c7993 to your computer and use it in GitHub Desktop.
Frazioni maledette
from z3 import Int, Solver, Not, And, sat
a = Int("a")
b = Int("b")
c = Int("c")
s = Solver()
s.add(a > 0, a < 10)
s.add(b > 0, b < 10)
s.add(c > 0, c < 10)
s.add(a != c)
s.add((10 * a + b) * c == a * (b * 10 + c))
s.add((100 * a + 11 * b) * c == a * (b * 110 + c))
while s.check() == sat:
m = s.model()
print(f"Solution: {m[a]}{m[b]}/{m[b]}{m[c]} = {m[a]}/{m[c]}")
s.add(Not(And(a == m[a], b == m[b], c == m[c])))
16/64 = 1/4
26/65 = 2/5
19/95 = 1/5
49/98 = 4/8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment