Trong phần này chúng ta sẽ xem cách viết chương trình kiểm tra xem một số cho trước có phải là số Adam hay không. Trước khi đi vào code, hãy xem số Adam là gì.
Số Adam là một số n, sao cho bình phương của n và bình phương của số đảo ngược của n là đảo ngược của nhau. Ví dụ: số 13. Số đảo ngược là 31. Bình phương của 13 là 169, bình phương của 31 là 961. 169 và 961 là đảo ngược của nhau nên 13 là số Adam.
Các bước kiểm tra số Adam:
- Lấy số n
- Đảo ngược số và lưu vào m
- Tính bình phương của n lưu vào sq_n
- Tính bình phương của m lưu vào sq_m
- Kiểm tra sq_n và đảo ngược của sq_m có giống nhau không
Ví dụ
#include <iostream>
using namespace std;
int reverseNumber(int num) {
int res = 0;
while(num != 0) {
res = res * 10 + num % 10; // cắt chữ số cuối và thêm vào kết quả
num /= 10; // giảm số
}
return res;
}
bool checkAdamNumber(int num) {
int rev_num = reverseNumber(num);
// lấy bình phương của số và số đảo ngược
int sq_num = num * num;
int sq_rev_num = rev_num * rev_num;
// nếu sq_num và sq_rev_num là đảo ngược của nhau, đó là số Adam
if(sq_num == reverseNumber(sq_rev_num)) {
return true;
}
return false;
}
int main() {
int num;
cout << "Enter a number to check whether it is Adam number or not: ";
cin >> num;
if(checkAdamNumber(num)) {
cout << "The number is an Adam number";
} else {
cout << "The number is not an Adam number";
}
return 0;
}
Kết quả
Enter a number to check whether it is Adam number or not: 13 The number is an Adam number
Kết quả
Enter a number to check whether it is Adam number or not: 25 The number is not an Adam number