Hiểu rõ bài toán
- Input: Hai số nguyên dương M và N (N ≤ M).
- Output: Tổng các số là ước của M trong khoảng từ 1 đến N.
- Yêu cầu: Sử dụng vòng lặp while trong C++.
Phân tích và thuật toán
- Nhập dữ liệu: Nhập hai số nguyên dương M và N từ bàn phím.
- Khởi tạo biến:
- sum: Biến để lưu trữ tổng các ước tìm được, khởi tạo bằng 0.
- i: Biến đếm, khởi tạo bằng 1.
- Vòng lặp while:
- Điều kiện: i <= N
- Thân vòng lặp:
- Nếu M chia hết cho i (nghĩa là i là ước của M) thì cộng i vào sum.
- Tăng i lên 1.
- In kết quả: In ra giá trị của sum.
Mã C++
C++
#include <iostream> using namespace std; int main() { int M, N, i, sum = 0; // Nhập dữ liệu cout << "Nhap M, N (N <= M): "; cin >> M >> N; // Kiểm tra điều kiện N <= M if (N > M) { cout << "Nhap sai! N phai nho hon hoac bang M." << endl; return 1; } // Tính tổng các ước của M trong đoạn 1 đến N i = 1; while (i <= N) { if (M % i == 0) { sum += i; } i++; } // In kết quả cout << "Tong cac uoc cua " << M << " trong doan 1 den " << N << " la: " << sum << endl; return 0; }
Giải bài toán bằng C++: Tính tổng các ước của M trong đoạn 1 đến N
Hiểu rõ bài toán
- Input: Hai số nguyên dương M và N (N ≤ M).
- Output: Tổng các số là ước của M trong khoảng từ 1 đến N.
- Yêu cầu: Sử dụng vòng lặp while trong C++.
Phân tích và thuật toán
- Nhập dữ liệu: Nhập hai số nguyên dương M và N từ bàn phím.
- Khởi tạo biến:
- sum: Biến để lưu trữ tổng các ước tìm được, khởi tạo bằng 0.
- i: Biến đếm, khởi tạo bằng 1.
- Vòng lặp while:
- Điều kiện: i <= N
- Thân vòng lặp:
- Nếu M chia hết cho i (nghĩa là i là ước của M) thì cộng i vào sum.
- Tăng i lên 1.
- In kết quả: In ra giá trị của sum.
Mã C++
C++
#include <iostream> using namespace std; int main() { int M, N, i, sum = 0; // Nhập dữ liệu cout << "Nhap M, N (N <= M): "; cin >> M >> N; // Kiểm tra điều kiện N <= M if (N > M) { cout << "Nhap sai! N phai nho hon hoac bang M." << endl; return 1; } // Tính tổng các ước của M trong đoạn 1 đến N i = 1; while (i <= N) { if (M % i == 0) { sum += i; } i++; } // In kết quả cout << "Tong cac uoc cua " << M << " trong doan 1 den " << N << " la: " << sum << endl; return 0; }
Hãy thận trọng khi sử dụng các đoạn mã.
Giải thích mã
- Dòng 1-2: Thư viện iostream cho phép nhập xuất dữ liệu.
- Dòng 4-5: Khai báo các biến cần thiết.
- Dòng 7-10: Nhập dữ liệu và kiểm tra điều kiện N ≤ M.
- Dòng 12-17: Vòng lặp while để duyệt qua các số từ 1 đến N.
- Dòng 13-14: Kiểm tra xem i có phải là ước của M không và cộng vào tổng nếu đúng.
- Dòng 18-19: In kết quả ra màn hình.Với input M = 12, N = 10, chương trình sẽ in ra kết quả là 16 vì các ước của 12 trong đoạn 1 đến 10 là 1, 2, 3, 4, 6 và tổng của chúng là 16.
Giải bài toán bằng C++: Tính tổng các ước của M trong đoạn 1 đến N
Hiểu rõ bài toán
- Input: Hai số nguyên dương M và N (N ≤ M).
- Output: Tổng các số là ước của M trong khoảng từ 1 đến N.
- Yêu cầu: Sử dụng vòng lặp while trong C++.
Phân tích và thuật toán
- Nhập dữ liệu: Nhập hai số nguyên dương M và N từ bàn phím.
- Khởi tạo biến:
- sum: Biến để lưu trữ tổng các ước tìm được, khởi tạo bằng 0.
- i: Biến đếm, khởi tạo bằng 1.
- Vòng lặp while:
- Điều kiện: i <= N
- Thân vòng lặp:
- Nếu M chia hết cho i (nghĩa là i là ước của M) thì cộng i vào sum.
- Tăng i lên 1.
- In kết quả: In ra giá trị của sum.
Mã C++
C++
#include <iostream> using namespace std; int main() { int M, N, i, sum = 0; // Nhập dữ liệu cout << "Nhap M, N (N <= M): "; cin >> M >> N; // Kiểm tra điều kiện N <= M if (N > M) { cout << "Nhap sai! N phai nho hon hoac bang M." << endl; return 1; } // Tính tổng các ước của M trong đoạn 1 đến N i = 1; while (i <= N) { if (M % i == 0) { sum += i; } i++; } // In kết quả cout << "Tong cac uoc cua " << M << " trong doan 1 den " << N << " la: " << sum << endl; return 0; }
Hãy thận trọng khi sử dụng các đoạn mã.
Giải thích mã
- Dòng 1-2: Thư viện iostream cho phép nhập xuất dữ liệu.
- Dòng 4-5: Khai báo các biến cần thiết.
- Dòng 7-10: Nhập dữ liệu và kiểm tra điều kiện N ≤ M.
- Dòng 12-17: Vòng lặp while để duyệt qua các số từ 1 đến N.
- Dòng 13-14: Kiểm tra xem i có phải là ước của M không và cộng vào tổng nếu đúng.
- Dòng 18-19: In kết quả ra màn hình.
Với input M = 12, N = 10, chương trình sẽ in ra kết quả là 16 vì các ước của 12 trong đoạn 1 đến 10 là 1, 2, 3, 4, 6 và tổng của chúng là 16.