พิจารณาว่าเรามีอาร์เรย์ A ที่มีสมาชิกบางตัว เราต้องหาสมาชิกจาก A ที่ทำให้สมาชิกทั้งหมดสามารถหารด้วยมันลงตัว สมมติ A เป็น [15, 21, 69, 33, 3, 72, 81] สมาชิกจะเป็น 3 เนื่องจากทุกตัวเลขหาร 3 ลงตัว
เพื่อแก้ปัญหานี้ เราจะเอาตัวเลขที่น้อยที่สุดใน A แล้วตรวจสอบว่าทุกตัวเลขหารด้วยตัวเลขที่น้อยที่สุดลงตัวหรือไม่ ถ้าใช่ คืนค่าตัวเลขนั้น มิฉะนั้น คืนค่า false
ตัวอย่างโค้ด
#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