یک الگوریتم نسبتا بهینه : تمام اعداد اول بجز 2 ، فردند ! پس ما در حلقه لازم نیست

بخشپذیری بر همه اعداد زوج بررسی کنیم ، چون یک عدد فرد هیچگاه بر عدد زوج نمیتونه

بخشپذیر بشه ، اینطوری تقریبا نصفی از داده ها یا بیشتر ، از مقایسه حذف میشوند و

الگوریتم بهینه تر میشود :


bool is_prime(int n){
bool res = true;
if(n<=1)
res = false;
if(n==2)
res = true;
if(n%2==0 && n!=2)
res = false;
else{
for(int i=3;i<=sqrt(n);i+=2){
if(n%i==0){
res = false;
break;
}
}
}
return res;
}