Sunteți pe pagina 1din 2

Algoritm verificare daca un numar e prim C++

 Ce este si ce face acest algoritm?


Acest algoritm face parte din unul dintre algoritmii elementari ce fiecare elev de liceu ar
trebui sa-l stie. Acesta verifica daca un numar este prim sau nu, dupa un principiu foarte
simplu. Vom parcurge toate numerele de la 2 la (numar / 2 – pentru optimizare) si vom
verifica daca acesta se imparte exact la numarul nostru. Putem optimiza algoritmul si mai
mult si sa parcurgem numerele pana la radical din numarul respectiv – pentru ca exista o
teorema in matematica care ne ajuta.

Definitia unui numar prim: Un numar este prim daca acesta se imparte doar la 1 si la el
insusi. Exemplu: 13.
Observatie: Doar numerele naturale sunt prime, deoarece cele intregi se impart la -1.

Daca doriti sa cititi mai multe despre numrele prime, va las aici un link de pe wikipedia:
click.

 Algoritmul pentru verificare unui numar prim

1 #include <iostream>
2
3 using namespace std;
4
5 bool numarPrim(int numar) // Functia returneaza doar true sau false - pentru ca nu
6 avem nevoie de alte valori
7 {
8 if(numar < 2) // Daca numarul este mai mic ca si 2 (1, 0, -1, -2, etc) - acesta nu este
9 prim
10 return false;
11 if(numar == 2) // Daca numarul este 2, acesta este prim
12 return true;
13 // for(int i = 2; i <= sqrt(numar); i++) - Optimizare in caz de nevoie
14 for(int i = 2; i <= numar / 2; i++) // Parcurgem toate numerele de la 2 la numar / 2
15 if(numar % i == 0) // Daca acesta se imparte exact la acel numar, inseamna ca nu
16 este prim
17 return false;
18 return true;
19 }
20
int main()
{
21
int nr;
22
cin >> nr;
23
if(numarPrim(nr) == true)
24
cout << "Numarul este prim";
25
else
26
cout << "Numarul NU este prim";
27
return 0;
}

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