1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
| from z3 import *
a = Int('a') b = Int('b')
solver = Solver()
solver.add(a * b == 342772773) solver.add(a + b == 39526)
if solver.check() == sat: m = solver.model() o = "" o += chr(int(m[a].as_long() & 0xff)) o += chr(int(m[a].as_long() >> 8)) o += chr(int(m[b].as_long() & 0xff)) o += chr(int(m[b].as_long() >> 8)) print(o)
else: print("No solution")
a, b, c, d, e, f, g, h = Ints('a b c d e f g h')
solver = Solver()
solver.add((d * (1 << 24)) + (c * (1 << 16)) + (b * (1 << 8)) + a - ( (h * (1 << 24)) + (g * (1 << 16)) + (f * (1 << 8)) + e) == 1005712381) solver.add((b * (1 << 8)) + a + (d * (1 << 8)) + c == 56269) solver.add((f * (1 << 8)) + e - (h * (1 << 8)) - g == 15092) solver.add(a * e == 10710) solver.add(c * g == 12051) solver.add(d + h == 172)
if solver.check() == sat:
m = solver.model()
print("a =", chr(m[a].as_long())) print("b =", chr(m[b].as_long())) print("c =", chr(m[c].as_long())) print("d =", chr(m[d].as_long())) print("e =", chr(m[e].as_long())) print("f =", chr(m[f].as_long())) print("g =", chr(m[g].as_long())) print("h =", chr(m[h].as_long())) else: print("No solution")
a, b=Ints('a b') solver = Solver() solver.add(a * b == 171593250) solver.add(a + b == 26219)
if solver.check() == sat:
m = solver.model() o = "" o += chr(int(m[a].as_long() & 0xff)) o += chr(int(m[a].as_long() >> 8)) o += chr(int(m[b].as_long() & 0xff)) o += chr(int(m[b].as_long() >> 8)) print(o)
a, b=Ints('a b') solver = Solver() solver.add(a * b == 376306868) solver.add(a + b == 40341)
if solver.check() == sat:
m = solver.model() o = "" o += chr(int(m[a].as_long() & 0xff)) o += chr(int(m[a].as_long() >> 8)) o += chr(int(m[b].as_long() & 0xff)) o += chr(int(m[b].as_long() >> 8)) print(o)
|