اگر عدد n اول نباشد میتوان آن را به صورت n=ab نوشت که در آن a و b اعدادی بزرگتر از یک هستند. از طرفی اگر n برابر ab باشد min(a,b)≤√n خواهد بود. بنابراین هر عدد مرکب مانند n حداقل یک مقسوم الیه بین 2 تا √n دارد بنابراین اول بودن یک عدد را میتوان با استفاده از الگوریتمی از مرتبه زمانی O(√n) فهمید.
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; }