Восстановить число из нескольких его остатков (китайская теорема об остатках)

У меня длинное целое число, но оно хранится не в десятичной форме, а как набор остатков.

Итак, у меня есть не число N , а набор таких остатков:

r_1 = N % 2147483743
r_2 = N % 2147483713
r_3 = N % 2147483693
r_4 = N % 2147483659
r_5 = N % 2147483647
r_6 = N % 2147483629

Я знаю, что N меньше умножения этих простых чисел, поэтому китайская теорема об остатках работает здесь ( http://en.wikipedia.org/wiki/Chinese_remainder_theorem ).

Как мне восстановить N в десятичном виде, если у меня есть эти 6 остатков? Будет чудесно любая программа для этого (C / C + GMP / C ++ / perl / java / bc).

Например, какое минимальное N может иметь этот набор остатков:

r_1 = 1246736738 (% 2147483743)
r_2 = 748761 (% 2147483713)
r_3 = 1829651881 (% 2147483693)
r_4 = 2008266397 (% 2147483659)
r_5 = 748030137 (% 2147483647)
r_6 = 1460049539 (% 2147483629)

5
задан Eitan T 31 December 2012 в 12:16
поделиться