ได้รับอาร์เรย์ ต้องพิมพ์ตัวเลขที่เป็นจำนวนเฉพาะ และผลรวมของหลักตัวเลขก็เป็นจำนวนเฉพาะด้วย ถ้าไม่มี ให้คืน -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 Step 4 -> Loop For i=0 and iตัวอย่างโค้ด (C++)
#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