یک الگوریتم نسبتا بهینه : تمام اعداد اول بجز 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;
}






پاسخ با نقل قول
