برنامه محاسبهٔ اعداد اول

اعداد اول اعدادی هستند که فقط به یک و خودشان بخش‌پذیر هستند و نمی‌توان آن را بصورت ضرب دو عدد طبیعی کوچکتر نوشت. کد زیر اعداد اول بین ۲ تا ۱۰۰ را چاپ می‌کند. با تغییر مقدار ماکروی N می‌توان این دامنه را افزایش یا کاهش داد.

#include <stdio.h>
#include <math.h>

#define N 100

int main()
{
    int i, j, m, flag;

    printf(N < 2 ? "" : "2 ");
    for(i = 3; i <= N; i++)
    {
        m = sqrt(i);
        flag = 1;  // Default: i is a prime number
        for(j = 2; j <= m; j++)
            if(i % j == 0)
            {
                flag = 0;
                break;
            }
        if(flag) printf("%d ", i);
    }
    printf("\n");

    return 0;
}

خروجی کد بالا:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97