Răspuns :
Testam potentialii divizori ai unui numar pana la radicalul numarului. Daca numarul este prim, la un moment dat nu o sa se mai respecte conditia: d * d <= n. Daca numarul nu este prim, o sa pice aceasta conditie: n % d != 0.
Daca vrei, iti explic de ce este suficient sa mergem pana la radicalul numarului.
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int d = 2;
while(d * d <= n && n % d != 0)
d++;
if(d * d > n && n > 1)
cout <<"Numarul este prim";
else
cout << "Numarul nu este prim";
return 0;
}
Daca vrei, iti explic de ce este suficient sa mergem pana la radicalul numarului.
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int d = 2;
while(d * d <= n && n % d != 0)
d++;
if(d * d > n && n > 1)
cout <<"Numarul este prim";
else
cout << "Numarul nu este prim";
return 0;
}
Trebuie doar sa testezi numerele de la 2 pana la [tex] \sqrt{numar} [/tex] daca sunt sau nu divizori ai lui n. Asta se face cu un for si cu un if. Eventual si cu o alta variabila unde retii daca ai gasit sau nu divizori.
Atasezi si o implementare putin mai avansata si mai complexa daca vrei si alta varianta.
Atasezi si o implementare putin mai avansata si mai complexa daca vrei si alta varianta.