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";
}
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;
}
}
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;
}
}