Rozwiązań może być wiele, ale każde z nich może być jednoznaczne. Rozwiązanie z liczbami 4 i 13 jest jednoznaczne - bo dla iloczynu 52 i sumy 17 da się jednoznacznie przeprowadzić rozumowanie, które Platona i Sokratesa przywodzi do rozwiązania problemu.
Natomiast mój początkowy sceptycyzm brał się stąd, że się pomyliłem w liczeniu tych iloczynów z sum i wyszło mi, że dla iloczynu 30 i sumy 17 też będzie istniało rozwiązanie. A wtedy 17 by się nie nadało, bo Sokrates nie mógłby odgadnąć liczb (chociaż Platon mógłby).
A suma nadaje się wtedy, gdy iloczyny utworzone z jej czynników nie pozwalają Platonowi określić szukanych liczb - czyli iloczyn taki musi mieć co najmniej trzy dzielniki (w praktycze cztery). Dla sumy 17 masz iloczyny: 2*15, 3*14, 4*13, 5*12 itd... Jeśli którykolwiek z tych iloczynów byłby jednoznacznie rozkładalny (na dwie liczby), to suma się nie nada.
A algorytm (program) powinien rozkładać sumę na czynniki, mnożyć czynniki, sprawdzać czy wynik przy dzieleniu przez liczby z przedziału 2-99 daje więcej niż jedno rozwiązanie z liczb całkowitych.
Z tym, że to dopiero połowa roboty, bo potem z tych "dobrych" sum trzeba jeszcze zrobić iloczyny... itd
Wydaje mi się, że od strony programistycznej nie byłoby to nic skomplikowanego.