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

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


ตามคำถาม ภารกิจคือการหาจำนวนเฉพาะที่ใกล้ที่สุดโดยการเพิ่มจำนวนเฉพาะที่เริ่มจาก 2 หากตัวเลข N ไม่ใช่จำนวนเฉพาะ

Input: N=6
Output: 11

คำอธิบาย

เนื่องจาก 6 ไม่ใช่จำนวนเฉพาะ เพิ่มจำนวนเฉพาะตัวแรกเป็น 6 เช่น 2 ซึ่งจะส่งผลให้เป็น 8 ตอนนี้ 8 ไม่ใช่จำนวนเฉพาะ ตอนนี้เพิ่มจำนวนเฉพาะตัวถัดไปหลังจาก 2 ซึ่งเป็น 3 ซึ่งจะให้ 8+3 =11 ดังนั้น 11 จะเป็นผลลัพธ์ของจำนวนเฉพาะ 11.

อัลกอริทึม

START
Step 1- > declare num=15, i = num/2
Step 2 -> Loop For k=2 and k<=i and k++
   Set I=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

ตัวอย่าง

#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