หมายเลขอดัม คือจำนวนที่สี่เหลี่ยมจัตุรัสกลับด้านของกำลังสองด้านตรงข้าม
อธิบายแนวคิด – สำหรับตัวเลขที่จะเป็น หมายเลขอดัม , กำลังสองของจำนวนนั้นกลับด้านของกำลังสองของการกลับด้านของตัวเลข มาดูตัวอย่างกัน
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