Loading [MathJax]/jax/output/HTML-CSS/jax.js

المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


آموزش:الگوریتم های تکمیلی:تست اول بودن عدد

تست اول بودن عدد

اگر عدد n اول ​نباشد می‌توان آن را به صورت ​n=ab نوشت که در آن a و b اعدادی بزرگتر از یک هستند. از طرفی ​اگر n برابر ab باشد min(a,b)n ​خواهد بود. بنابراین ​هر عدد ​مرکب مانند n حداقل یک مقسوم الیه بین 2 تا n ​دارد بنابراین اول بودن ​یک عدد ​را می‌توان با استفاده از الگوریتمی از مرتبه زمانی O(n) فهمید.

Primality_test.cpp
bool is_prime(int n)
{
    if (n < 2)
        return false;
    for (int i = 2; i * i <= n; i++)
        if (n % i == 0)
            return false;
    return true;
}

ابزار صفحه