Phase 2

Toán & số học

Chia hết, ước–bội, số nguyên tố, sàng Eratosthenes, và xử lý số lớn

Số học xuất hiện ở hầu hết các đề. Phần này dạy các công cụ kinh điển: xử lý chữ số, ước chung lớn nhất bằng thuật toán Euclid, tìm số nguyên tố bằng sàng Eratosthenes, và cách cộng/nhân những số vượt quá cả long long.

1. Chia hết & xử lý chữ số

Hai phép toán nền tảng: / là chia lấy phần nguyên, % là lấy số dư. Với số nguyên: 17 / 5 = 3 và 17 % 5 = 2. Từ đó ta tách được từng chữ số của một số:

Tính tổng các chữ số và đảo ngược số
chu-so.cpp
int n;
cin >> n;
int tong = 0, dao = 0;
while (n > 0) {
    int d = n % 10;     // chu so hang don vi
    tong += d;
    dao = dao * 10 + d; // ghep chu so vao so dao
    n /= 10;            // bo chu so vua lay
}
cout << tong << " " << dao << "\n";

n % 10 lấy chữ số cuối, n /= 10 bỏ nó đi. Lặp đến khi hết chữ số. Ví dụ 1234 → tổng 10, đảo 4321.