Số lớn (string). Kiểm tra chia hết cho 8.
Quy tắc: Số hình thành bởi 3 chữ số cuối chia hết cho 8 ⇔ số đó chia hết cho 8.
Chương trình C++
#include <bits/stdc++.h>
using namespace std;
bool divisibleBy8(const string& num) {
int n = num.size();
int last3 = 0;
for (int i = max(0, n-3); i < n; i++)
last3 = last3 * 10 + (num[i] - '0');
return last3 % 8 == 0;
}
int main() {
vector test = {"1754586672360", "123456", "1000", "1008", "1234"};
for (auto &s : test)
cout << s << ": " << (divisibleBy8(s) ? "Chia het" : "Khong chia het") << "\n";
return 0;
}
Kết quả
1754586672360: Chia het 123456: Chia het 1000: Chia het 1008: Chia het 1234: Khong chia het