Я не студент и не математик,и даже не программер,а просто интересующийся различными сферами деятельности.
Возникла необходимость написать софтинку, которая бы раскладывала число на составляющие по заданному уравнению:
дано число S, которое может принмать значения от 8 до 234881024
S=x*(y*(4+z1)+4+z2)+z3 , где
x может принимать значение от 1 до 255
y - от 1 до 65535
z1,z2,z3 - от нуля, до 20
Имея на входе значение S необходимо вычислить: x,y,z1,z2,z3
Хотя-бы одно из множеств решений.
Вариант перебора отпадает - это некрасиво как-то и неинтересно.

Была мысль начать с того, на какие числа вообще делится S, но это опять-же только перебором.
Поэтому у меня вопрос к профессионалам, возможно-ли это решить красиво и каким образом?

Спасибо!
p.s. прошу прощения если не в тот топик, просто я не знаю что такое дифуры и относится-ли к ним моя задача.