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ố đó). Ví dụ (220;284) là cặp số thân thiết. Hãy dùng phần mềm Scratch để tạo chương trình tìm ra tất cả các cặp số thân thiết trong phạm vi 1.000 (tức là M và N đều nhỏ hơn 1.000).
Bằng cách nhấp vào Đăng nhập, bạn đồng ý Chính sách bảo mật và Điều khoản sử dụng của chúng tôi. Nếu đây không phải máy tính của bạn, để đảm bảo an toàn, hãy sử dụng Cửa sổ riêng tư (Tab ẩn danh) để đăng nhập (New Private Window / New Incognito Window).
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:
Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi
Vui | Buồn | Bình thường |