Computer >> Máy Tính >  >> Lập trình >> lập trình C

In các số nguyên tố với tổng các chữ số nguyên tố trong một mảng

Được đưa ra với một mảng các phần tử và nhiệm vụ là in những số có tổng chữ số cũng là số nguyên tố và trả về -1 không phải là chữ số như vậy tồn tại trong một mảng

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

Ở đây, đầu ra đã cho được tạo ra vì nó chứa các số cộng có tổng của chúng cũng là số nguyên tố như - 2, 3, 7 là số nguyên tố nhưng 25 (2 + 5 =7), 11 (1 + 1 =2), 12 (1+ 2 =3) cũng là số nguyên tố trong khi các số như 19 (1 + 9 =10) không phải là số nguyên tố.

Thuật toán

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

Ví dụ

#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]<<" ";
         }
      }
   }
}

Đầu ra

nếu chúng ta chạy chương trình trên thì nó sẽ tạo ra kết quả sau

2 3 11 25 12 7