👤
a fost răspuns

Dandu-se un nr intreg pozitiv n,creati un program care determina daca nr n este un nr prim.Daca nr n este prim se va afisa DA,iar daca nr n nu este prim se va afisa NU.

Răspuns :

#include <iostream>
using namespace std;
int main()
{
     int n,i,ok=1;
     cin>>n;
     if(n==1) cout<<"NU";
     else
     {
           for(i=2;i<=n/2;i++)
           {
                  if(n%i==0) ok=0;
           }
     }
     if(ok==1) cout<<"DA";
     else cout<<"NU";
}

Am creat un algoritm foarte eficient pentru verificarea unui nr prim. Sare din doi in doi evitand astfel comparatiile inutile (cu toate numerele pare-in afara de 2).
   Poti sa-l studiezi daca vrei:
bool CheckPrime(int Nr){
        bool IsPrime=true;
        double rad=sqrt(Nr);
        if(Nr!=2){
                 if(Nr%2!=0){
                       for(int x=3;x<=rad;x+=2){
                                 if(Nr%x==0) IsPrime=false;
                       }
                       return IsPrime;
                 }else{
                        return false;
                  }
         }else{
             return true;
        }
}