Testul de primalitate
Un număr e prim dacă nu are alți divizori în afară de 1 și el însuși.
Nu e nevoie să testezi până la . E suficient până la , pentru că divizorii vin în perechi: dacă divide , atunci și divide , iar unul dintre ei e mereu .
Complexitate: de la la .
Cazuri speciale: 0 și 1 nu sunt prime. 2 e singurul număr prim par.
Divizorii unui număr
Aceeași observație: parcurgi de la 1 la și pentru fiecare divizor găsit adaugi și perechea lui.
Algoritmul lui Euclid
Calculează cel mai mare divizor comun (cmmdc).
Varianta cu scăderi: cât timp , scade din cel mare pe cel mic. Când devin egale, aia e valoarea.
Varianta cu împărțiri (mult mai rapidă):
Repeți până restul devine 0. Ultimul rest nenul e răspunsul.
Exemplu: cmmdc(48, 18):
- 48 mod 18 = 12 → (18, 12)
- 18 mod 12 = 6 → (12, 6)
- 12 mod 6 = 0 → răspuns 6
Cel mai mic multiplu comun
Atenție la depășire: la numere mari, poate depăși tipul. Se împarte întâi: .
Reține
Testul până la și formula cmmmc = a·b/cmmdc sunt două dintre cele mai frecvente cerințe de la Subiectul II și III. Merită știute pe de rost.
Greșeli frecvente
- Se consideră 1 număr prim. Nu este.
- Se testează divizibilitatea până la în loc de . Corect, dar mai lent; la limite mari pică pe timp.
- La cmmmc se înmulțește întâi și se depășește tipul. Împarte întâi.