Page 37 - MATINF Nr. 13-14
P. 37
a
Teorema chinezeasc˘ a resturilor 37
for(int i=0; i<3; i++)
cout<<'' x = ''<<test2[i].rest<<'' (mod ''<< test2[i].modul<<'')''<<endl;
Congruenta rez2 = TCR(test2,3);
afiseaza_rezultat(rez2);
// === TEST 3: Sistem incompatibil ===
cout << ''TEST 3: Sistem incompatibil'' << endl;
Congruenta test3[] ={ {1, 4}, {2, 6} };
// x = 1 (mod 4); x = 2 (mod 6) -> incompatibil: (2-1) nu se divide cu cmmdc(6,4)
// x=4k+1, x=6p+2 => 4k+1=6p+2 imposibil!
cout<<''Sistemul:'' << endl;
for(int i=0; i<2; i++)
cout<<'' x=''<<test3[i].rest<<''(mod ''<<test3[i].modul<<'')''<<endl;
Congruenta rez3 = TCR(test3,2);
afiseaza_rezultat(rez3);
// === TEST 4: Sistem cu 4 congruente ===
cout<<''TEST 4: Sistem cu 4 congruente''<<endl;
Congruenta test4[] ={{1, 2}, {2, 3}, {3, 5}, {1, 7} };
cout<<''Sistemul:''<<endl;
for(int i=0; i<4; i++)
cout<<'' x=''<<test4[i].rest<<'' (mod ''<<test4[i].modul<<'')''<<endl;
Congruenta rez4 = TCR(test4,4);
afiseaza_rezultat(rez4);
// === TEST 5: Sistem cu module mari ===
cout << ''TEST 5: Sistem cu module mari (coprime)'' << endl;
Congruenta test5[] = {{123, 997},{456, 991}, {789, 983}};
cout << ''Sistemul:'' << endl;
for(int i=0; i<3; i++)
cout << '' x=''<<test5[i].rest<<'' (mod ''<<test5[i].modul<<'')''<<endl;
Congruenta rez5 = TCR(test5,3);
afiseaza_rezultat(rez5);
return 0;
}
Bibliografie
a
[1] M. Mignotte, Introducere ˆın algebra computat , ional˘, Editura Universit˘at , ii Bucures , ti, 2000.
[2] V. P˘aun, Algoritmul extins al lui Euclid, , MATINF, anul VI, nr. 11-12, 2023.
[3] https://ro.wikipedia.org/wiki/Teorema chinezeasc%C4%83 a resturilor

