พิจารณาว่าเรามีอาร์เรย์ A ที่มีองค์ประกอบน้อย เราต้องหาองค์ประกอบจาก A เพื่อให้องค์ประกอบทั้งหมดสามารถหารด้วยมันได้ สมมติว่า A เหมือนกับ [15, 21, 69, 33, 3, 72, 81] จากนั้นองค์ประกอบจะเป็น 3 เนื่องจากตัวเลขทั้งหมดสามารถหารด้วย 3 ลงตัว
เพื่อแก้ปัญหานี้เราจะเอาตัวเลขที่น้อยที่สุดใน A แล้วตรวจสอบว่าตัวเลขทั้งหมดสามารถหารด้วยตัวเลขที่น้อยที่สุดได้หรือไม่ ถ้าใช่ ให้คืนค่าตัวเลขนั้นกลับไม่เช่นนั้นให้คืนค่าเท็จ
ตัวอย่าง
#include<iostream> #include<algorithm> using namespace std; int getNumber(int a[], int n) { int minNumber = *min_element(a, a+n); for (int i = 1; i < n; i++) if (a[i] % minNumber) return -1; return minNumber; } int main() { int a[] = { 15, 21, 69, 33, 3, 72, 81 }; int n = sizeof(a) / sizeof(int); cout << "The number is: "<< getNumber(a, n); }
ผลลัพธ์
The number is: 3