Tìm cặp số thân thiết: Hai số tự nhiên (M;N) được gọi là cặp số thân thiết nếu số này bằng tổng các ước số của số kia (kể cả 1 nhưng không kể số đó)
Xác định bài toán:
Input:
(Không cần dữ liệu nhập vào)
Output:
Hai số tự nhiên MMM và NNN sao cho:
M<1000;N<1000;
N= Tổng các ước của M (kể cả 1 và không kể M)
M = Tổng các ước của N(kể cả 1 và không kể N)
Tìm thuật toán:
Lặp với N từ 1 đến 999:
Tính tổng ước của N được kết quả là Tổng ước
M=Tổng ước
Tính tổng ước của M được kết quả là Tổng ước
Nếu (N=Tổng ước): Thông báo (M; N) là cặp số thân thiết.
Hết lặp
Trong thuật toán trên, Tính tổng ước của N là một bài toán con có thuật toán được mô tả như sau:
Thuật toán: Tính tổng ước của N
Tổng ước = 1
u=2
Lặp đến khi u>N/2:
Nếu (N chia hết cho u): Tổng ước = Tổng ước + u
u=u+1
Hết lặp
Viết chương trình:


Chạy thử để sửa lỗi:
- Có thể trong phiên bản đầu tiên của chương trình thì điều kiện để thông báo (M;N) là cặp số thân thiết chỉ là (M=Tổng ước của N)(M = Tổng ước của N). Khi chạy thử sẽ thấy thông báo đưa những cặp số mà (N=M).
- Có thể chỉnh sửa chương trình để chỉ thông báo những cặp (M;N) M≠ N.
- Có thể chỉnh sửa thêm để mỗi cặp số chỉ thông báo 1 lần (Ví dụ: Chỉ thông báo (220;284) chứ không lặp lại ((284; 220)) bằng cách thay đổi lệnh như sau:
