หมายเลขอดัม คือจำนวนที่สี่เหลี่ยมจัตุรัสกลับด้านของกำลังสองด้านตรงข้าม
อธิบายแนวคิด – สำหรับตัวเลขที่จะเป็น หมายเลขอดัม , กำลังสองของจำนวนนั้นกลับด้านของกำลังสองของการกลับด้านของตัวเลข มาดูตัวอย่างกัน
12 คือตัวเลข . กำลังสองของ 12 คือ 144 และส่วนหลังของ 12 คือ 21 กำลังสองของการย้อนกลับของ 12 คือ 21 คือ 441 441 คือสิ่งที่ตรงกันข้ามของ 144 ซึ่งก็คือกำลังสองของ 12
อัลกอริธึมในการตรวจสอบว่าตัวเลขเป็นตัวเลขอดัมหรือไม่ −
- จากจำนวน xy ให้หากำลังสองของตัวเลข (xy) 2 .
- สำหรับ xy ให้กลับหลักของตัวเลข -> yx
- ตอนนี้ สำหรับจำนวน yx ให้หากำลังสองของตัวเลข (xy) 2 .
- กลับหลัก (xy) 2 และประเมินด้วย (yx) 2 .
- ถ้าเท่ากันทั้งคู่ ก็คือเลขอาดัม
ตัวอย่าง
#include <iostream>
using namespace std;
int reverseDigits(int num) {
int rev = 0;
while (num > 0) {
rev = rev * 10 + num % 10;
num /= 10;
}
return rev;
}
int main() {
int num = 31;
cout<<num<<" is ";
int rev = reverseDigits(num);
if ( (num*num) == (reverseDigits(rev*rev)) )
cout << "Adam Number";
else
cout << "not an Adam Number";
return 0;
} ผลลัพธ์
31 is Adam Number