Последовательный и параллельный (CUDA) поиски диофант. ур-ий 2 степени
По идеям есть расширенный алгоритм Евклида и поиск в лоб.
В лоб на псевдокоде представляется так:
for a in [-10^6; 10^6]:
for b in [-10^6; 10^6]:
for c in [-10^6; 10^6]:
for x in [-10^6; 10^6]:
y = |sqrt(c-a*x^2)/b|
if y - целое, выводим {a, b, c, x, y} и сохраняем в файл.
Перебор всех вариантов составит (2*10^6)^4. Как распараллелить - вопрос открытый.
Цена договорная.