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

พิมพ์จำนวนเฉพาะที่มีจำนวนเฉพาะของตัวเลขในอาร์เรย์


ด้วยอาร์เรย์ขององค์ประกอบและงานคือการพิมพ์ตัวเลขเหล่านั้นซึ่งผลรวมหลักเป็นจำนวนเฉพาะและการคืนค่า -1 ไม่ใช่ตัวเลขดังกล่าวในอาร์เรย์

Input: arr[]={2,4,3,19,25,6,11,12,18,7}
Output : 2, 3, 25, 11, 12, 7

ในที่นี้ เอาต์พุตที่กำหนดจะถูกสร้างขึ้นเนื่องจากมีจำนวนบวกที่มีผลรวมเป็นจำนวนเฉพาะ เช่น − 2, 3, 7 เป็นจำนวนเฉพาะ แต่ 25(2+5=7), 11(1+1=2), 12(1+ 2=3) เป็นจำนวนเฉพาะในขณะที่ตัวเลขเช่น 19(1+9=10) ไม่ใช่จำนวนเฉพาะ

อัลกอริทึม

START
Step 1 -> Take array of int with values
Step 2 -> declare start variables as i, m, flag, flag1, sum, r, d, j, tem
Step 3 -> store size of array in m as sizeof(arr)/sizeof(arr[0])
Step 4 -> Loop For i=1 and i<m and i++
   Set flag=flag1=sum=0
   Set d=int(arr[i]/2
   Loop For j=2 and j<=d and j++
      IF arr[i]%j==0
         Set flag=1
         Break
      End IF
   End
   IF flag=0
      Set tem=arr[i]
         Loop While tem
            Set r=tem%10
            Set sum=sum+r
            Set tem=tem/10
         End
         Set d=int(sum/2)
         Loop For j=2 and j<=d and j++
            IF sum%j=0
               Set flag1=1
               break
            End
         End
      IF flag1=0
         Print arr[i]
      End
   End
End
STOP

ตัวอย่าง

#include<iostream>
using namespace std;
int main(){
   int arr[]={2,4,3,19,25,6,11,12,18,7};
   int i,m,flag,flag1,sum,r,d,j,tem;
   m=sizeof(arr)/sizeof(arr[0]);
   for(i=0;i<m;i++) {
      flag=flag1=sum=0;
      d=int(arr[i]/2);
      for(j=2;j<=d;j++){
         if(arr[i]%j==0) {
            flag=1;
            break;
         }
      }
      if(flag==0) {
         tem=arr[i];
         while(tem) {
            r=tem%10;
            sum=sum+r;
            tem=tem/10;
         }
         d=int(sum/2);
         for(j=2;j<=d;j++) {
            if(sum%j==0){
               flag1=1;
               break;
            }
         }
         if(flag1==0){
            cout<<arr[i]<<" ";
         }
      }
   }
}

ผลลัพธ์

หากเรารันโปรแกรมข้างต้น มันจะสร้างผลลัพธ์ดังต่อไปนี้

2 3 11 25 12 7