👤
a fost răspuns

Ce e gresit? Primesc doar 90 de puncte.

#include
using namespace std;
int main()
{ int X, b=0;

cin>>X;
while (X!=0)
{ b=b*10+X%10;
X=X/10; }

int i = 2, este_prim = 1;
while (i < b) {
if ( b % i == 0)
este_prim = 0;
++i;
}

if (b == 1)
este_prim = 0;
if (este_prim == 1){
cout<<"DA";}
else{
cout<<"NU";}
return 0;
}


Răspuns :

Dacă condiție e să verifici dacă numărul introdus este prim sau nu, prea multe operații de verificare efectuiezi, e necesar să verifici doar o condiție de împărțire la el însuși și la 1.

#include <iostream>

using namespace std;


int main()

{

 int n, i;

 bool prim_sau_nu = true;


 cout << "Dati numarul intreg n: ";

 cin >> n;


 for(i = 2; i <= n / 2; ++i)

 {

     if(n % i == 0)

     {

         prim_sau_nu = false;

         break;

     }

 }

 if (prim_sau_nu)

     cout << "Numarul introdus este prim!";

 else

     cout << "Numarul introdus nu este prim!";


 return 0;

}