Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

พิมพ์จำนวนเฉพาะที่ใกล้ที่สุด โดยบวกจำนวนเฉพาะเข้ากับ N

ตามโจทย์ ต้องหาจำนวนเฉพาะที่ใกล้ที่สุด โดยการบวกจำนวนเฉพาะเริ่มจาก 2 หาก N ไม่ใช่จำนวนเฉพาะ

Input: N=6
Output: 11

คำอธิบาย

6 ไม่ใช่จำนวนเฉพาะ บวกจำนวนเฉพาะแรกคือ 2 ได้ 8 แต่ 8 ก็ไม่ใช่จำนวนเฉพาะ บวกจำนวนเฉพาะถัดไปคือ 3 ได้ 8+3 = 11 ซึ่งเป็นจำนวนเฉพาะ ดังนั้นคำตอบคือ 11

อัลกอริทึม

START
Step 1 -> declare num=15, i = num/2
Step 2 -> Loop For k=2 and k<=i and k++
    Set l=k/2
    Loop For j=2 and j<=l and j++
        Set flag=0
        If k%j==0
            Set flag=1
            Break
        End
    End
    IF flag==0
        Set num=num+k
    End IF
    Set a=num/2
    Loop For m=2 and m<=a and m++
        Set flag1=0
        IF num%m==0
            Set flag1=1
            break
        End
    END
    If flag1==0
        Print num
        End
END STOP

ตัวอย่างโค้ด (C)

#include <stdio.h>

int main() {
    int num = 15;
    int i, k, j, sum = 0, flag = 0, l, flag1 = 0, a, m;
    i = num / 2;
    for (k = 2; k <= i; k++) {
        l = k / 2;
        for (j = 2; j <= l; j++) {
            flag = 0;
            if (k % j == 0) {
                flag = 1;
                break;
            }
        }
        if (flag == 0) {
            num = num + k;
        }
        a = num / 2;
        for (m = 2; m <= a; m++) {
            flag1 = 0;
            if (num % m == 0) {
                flag1 = 1;
                break;
            }
        }
        if (flag1 == 0) {
            printf("%d", num);
            return 0;
        }
    }
}

ผลลัพธ์

17