Sunteți pe pagina 1din 4

DIVIZIBILITATE SI NUMERE PRIME

De la matematică putem spune că un număr natural d este divizorul lui n, dacă şi numai dacă, restul împărţirii


lui n la d este egal cu zero:
┌dacă n % d = 0 atunci
│ scrie d „îl divide pe” n
│altfel
│ scrie d „nu îl divide pe ” n
└■
Dacă vom nota cu Dn mulţimea divizorilor numărului n atunci dacă n=12 putem scrie: D12={1, 2, 3, 4, 6, 12}, unde 1
şi 12 se numesc divizori improprii ai lui 12, iar 2, 3, 4, 6 sunt divizorii proprii ai lui 12.
Algoritmul pentru determinarea(afisarea) divizorilor unui număr n dat de la tastatură este:
citeşte n (număr natural)
scrie “Divizorii numărului ”, n, “sunt:”
┌pentru d=1, n, +1
│ ┌dacă n%d=0 atunci
│ │ scrie d, ” ”
└■
└■
Algoritmul pentru determinarea divizorilor proprii a unui număr n, dat de la tastatură este:
citeşte n (număr natural)
scrie “Divizorii proprii a numărului ”, n, “sunt:”
┌pentru d=2, n/2, +1
│ ┌dacă n%d=0 atunci
│ │ scrie d, ” ”
│ └■
└■
Un număr natural care are exact doi divizori se numeşte număr prim, iar numerele naturale care nu sunt numere prime
se numesc numere compuse. Plecând de la această definiţie, algoritmul care verifică dacă numărul natural n, dat de la
tastatură este prim are următoarea formă :
citeşte n (număr natural)
nr=0
┌pentru d=1,n,+1
│ ┌dacă n%d=0 atunci
│ │ nr=nr+1
│ └■
└■
┌dacă nr=2 atunci
│ scrie n, ”este număr prim”
│altfel
│ scrie n, ”nu este număr prim”
└■
Matematic s-a demonstrat că, dacă numărul n nu are nici un divizor propriu mai mic sau egal cu radical din x, atunci
numărul este prim. Folosind această operaţie se micşorează numărul de paşi în a verifica dacă n este prim sau nu.
Algoritmul în acest caz se poate scrie şi aşa:
citeşte n (număr natural)
ok=1 // presupun numărul dat ca fiind un număr prim
d=2
┌cât timp d<=radical din x şi ok = 1 execută
│ ┌dacă n%d=0 atunci // am găsit un divizor propriu în [2,radical din x]
│ │ ok=0 // atunci n nu este prim
│ │altfel
│ │ d=d+1
│ └■
└■
┌dacă ok = 1 atunci
│ scrie n, ”este număr prim”
│altfel
│ scrie n, ”nu este număr prim”
└■
Observaţie:
a. numărul 1 nu este număr prim, dar nu este nici număr compus;
b. numărul 2 este singurul număr prim şi par.

Verificare numar primi


Pentru aceasta problema vom avea nevoie de o variabila in care sa verificam daca numarul citit de la
tastatura sau din fisier are divizori sau nu.

In C++ arata cam asa:

Vom parcurge cautarea de divizori pana la radical pentru a face programul cat mai eficient din punct de
vedere al timpului.
Suma divizorilor unui numar
In C++ arata cam asa:

Trebuie sa avem grija la cazul in care numarul este patrat perfect.


De aceea vom mai lua o variabila (j) in care sa verificam daca numarul e patrat perfect pentru a nu adauga
de 2 ori acelasi divizor.
Numarul de divizori
Se aseamana mult cu suma divizorilor, insa in loc sa adunam divizorii ii vom numara.

In C++ arata cam asa:

S-ar putea să vă placă și