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: يطلب من المستخدم إدخال القيمة القصوى للنطاق، ويطبع الأعداد الأولية ضمن ذلك النطاق.

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

مبني باستخدام Hugo
قالب Stack مصمم من Jimmy