This Python code does a full search and finds the unique solution instantly:
p = 711
q = 711000000
for a in range(1, 1 + p // 4):
if q % a == 0:
for b in range(a, 1 + (p - a) // 3):
if q % (a * b) == 0:
for c in range(b, 1 + (p - a - b) // 2):
d = p - a - b - c
if a * b * c * d == q:
print (a, b, c, d)
Does Prolog do the same pruning? Alternatively, it could be dumber (omit some of the pruning that my code does) or smarter (start by factoring 711000000 or something).