Moim zdaniem początek jest dobry, dalej nie wiem co tam to NWD wyrabia, oraz co oznacza i lecimy z obliczeniami. - jakimi?
Generalnie do rozwiązywania dużych układów może posłużyć chińskie twierdzenie o resztach, ale że tu układy są krótkie to jest prostszy sposób - w sumie trochę takie liczenie na palcach, który zakrawa o to co ty robiłeś (chociaż napisałeś tylko dwie linijki z których jedna nie ma dla mnie sensu).
Dla przykładu a) mamy wszędzie tę samą liczbę więc wystarczy ją wstawić za x i git, dla drugiego:
{x ≡ 2 (mod 3)
{x ≡ 3 (mod 5)
{x ≡ 2 (mod 7)
x ≡ 2 (mod 3) => x = 3i + 2 - wszystkie liczby tej postaci spełniają to równanie. Szukamy takiego i żeby liczba w tej postaci spełniła drugie równanie
3i + 2 ≡ 3 (mod 5) - robimy to po prostu podstawiając kolejne liczby za i
3*1 + 2 ≡ 0
3*2 + 2 ≡ 3 - znalazłem
więc nasze i = 3. Mamy więc z dwóch pierwszych równań:
{3*2 + 2 ≡ 2 (mod 3)
{3*2 + 2 ≡ 3 (mod 5)
więc:
{8 ≡ 2 (mod 3)
{8 ≡ 3 (mod 5)
więc:
x ≡ 8 (mod 3*5)
więc
x ≡ 8 (mod 15)
zostają nam dwa równania:
{x ≡ 8 (mod 15)
{x ≡ 2 (mod 7)
bierzemy któreś z nich - dowolnie i robimy tak jak przedtem, np dla pierwszego x = 15j + 8
15j + 8 ≡ 2 (mod 7)
15 * 1 + 8 ≡ 2
czyli j = 1
na końcu nasza liczba to 15*i+8 = 23
Mam nadzieję że załapałeś algorytm