Featured image of post نموذج كود بسيط بلغة C لتوليد والتحقق من الأعداد الأولية ضمن نطاق محدد

نموذج كود بسيط بلغة C لتوليد والتحقق من الأعداد الأولية ضمن نطاق محدد

نقدم نموذج كود بسيط بلغة C للتحقق من الأعداد الأولية ضمن نطاق محدد (من 1 إلى n) وإنشائها وسردها. يتضمن خوارزمية فعالة باستخدام الدالة isPrime، مع مثال برمجي وشرح مبسط حتى للمبتدئين.

فيما يلي كود بسيط بلغة C يولد أعدادًا أولية ضمن نطاق محدد. في هذا المثال، نسرد الأعداد الأولية من 1 إلى n.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <stdbool.h>

bool isPrime(int num) {
    if (num <= 1) return false;
    if (num <= 3) return true;
    if (num % 2 == 0 || num % 3 == 0) return false;
    
    for (int i = 5; i * i <= num; i += 6) {
        if (num % i == 0 || num % (i + 2) == 0) return false;
    }
    return true;
}

void printPrimes(int n) {
    printf("2 ");
    for (int i = 3; i <= n; i += 2) {
        if (isPrime(i)) {
            printf("%d ", i);
        }
    }
    printf("\n");
}

int main() {
    int n;
    printf("أدخل القيمة القصوى للنطاق لتوليد الأعداد الأولية: ");
    scanf("%d", &n);
    printf("الأعداد الأولية من 1 إلى %d هي كالتالي:\n", n);
    printPrimes(n);
    return 0;
}

يعمل هذا الكود على النحو التالي:

  1. دالة isPrime: تحدد ما إذا كان العدد المعطى أوليًا أم لا. من أجل الكفاءة، يتم أولاً التحقق مما إذا كان قابلاً للقسمة على 2 و 3، وبعد ذلك يتم التحقق من مضاعفات العدد 6.
  2. دالة printPrimes: تطبع الأعداد الأولية ضمن النطاق المحدد. تتم طباعة 2 أولاً، ثم يتم التحقق من الأعداد الفردية فقط.
  3. دالة main: يطلب من المستخدم إدخال القيمة القصوى للنطاق، ويطبع الأعداد الأولية ضمن ذلك النطاق.

عند تجميع وتشغيل هذا الكود، سيتم عرض الأعداد الأولية ضمن النطاق المحدد.

comments powered by Disqus