You are on page 1of 1

Vodič za rješavanje kvadratnih kongruencija oblika ≡ (mod )

S obzirom da se studenti često lako pogube u gomili slučajeva koji mogu nastupiti prilikom rješavanja
kvadratnih kongruencija, slijedi grubi algoritamski opis kako rješavati kvadratne kongruencije, koji
obuhvaća sve situacije koje mogu nastupiti.

Na prvom mjestu, provjeriti da li je kongruencija uopće rješiva, i ne nastavljati dalje ako nije (u suprotnom,
postupak rješavanja može dati lažna rješenja kojih zapravo nema)!
IF NZD( , ) = 1:
IF je prost broj :
IF = 2:
Trivijalan slučaj − jedinstveno tipično rješenje je = 1;
ELSE
IF mod( , 4) = 3:
Primijeniti Lagrangeovu formulu = mod( ( ) , );
ELSE IF mod( , 8) = 5:
Primijeniti Legendreovu formulu = mod( ( ) , );
IF mod( , ) ≠ (tj. ne zadovoljava kongruenciju):
Primijeniti drugu Legendreovu formulu = mod( ( ) ∙ ( ) , );
END IF
ELSE IF − 1 nije djeljiv s velikim stepenom dvojke:
Koristiti Tonelli algoritam (opis na strani 11);
ELSE
Koristiti Cipolla algoritam (opis na strani 12);
END IF
Jedno tipično rješenje je nađeno , a drugo je − ;
END IF
ELSE IF je stepen prostog broja ≠ , tj. = , ≠ 2, > 1:
Naći jedno rješenje pomoćne kongruencije ≡ (mod ) i nazvati ga ;
Izračunati =( ) ;
Za = , 3, …, računati = mod( − ∙( − ), );
Jedno tipično rješenje je (Henselova lema), a drugo je − ;
ELSE IF je stepen dvojke, = , > 1:
IF = 2:
Trivijalan slučaj − tipična rješenja su = 1 i = 3;
ELSE IF = 3:
Trivijalan slučaj − tipična rješenja su = 1, = 3, = 5 i = 7;
ELSE
Krenuti od tipičnih rješenja za = 3;
Postupno "podizati" rješenja na = 4, = 5 itd. (na način opisan na strani 13) dok se
ne dostigne traženo ;
END IF
ELSE
Rastaviti na proste faktore, = ... ;
Riješiti kongruenciju ≡ (mod ) (osim ako je = 0), te kongruencije ≡ (mod )
za sve = 1, , …, ;
Formirati sve kombinacije koje se mogu napraviti tako što se od svake od prethodno riješenih
kongruencija uzme po jedno tipično rješenje (takvih kombinacija će biti ako je = 0 ili
= 1, ako je = 2, te ako je ≥ 3);
Za svaku od tako formiranih kombinacija formirati sistem linearnih kongruencija stavljajući da
je kongruentno sa svakim od elemenata kombinacije;
Riješiti tako formirane sisteme pomoću kineske teoreme o ostacima − svako tipično rješenje tih
sistema daje po jedno tipično rješenje kvadratne kongruencije;
END IF
ELSE
Rastaviti = NZD( , ) u produkt = gdje su i prirodni brojevi takvi da se u rastavi broja
na proste faktore ne javlja niti jedan prosti faktor s eksponentom većim od 1;
Naći tipično rješenje linearne kongruencije ≡ / (mod / );
Naći sva tipična rješenja pomoćne kvadratne kongruencije ≡ (mod / );
Svakom tipičnom rješenju ove kongruencije odgovara tipičnih rješenja polazne kongruencije koja
iznose + ( / ) za = 0, 1, …, − 1;
END IF

You might also like