C++ - Tìm tất cả ước của một số nguyên được nhập từ bàn phím

VIết một chương trình tìm tất cả ước của một số nguyên được nhập từ bàn phím.

Bài giải

-------------------- ######## --------------------

 

Trước khi đi vào giải bài toán trên chúng ta cùng nhớ lại khái niệm ước của một số như sau:

  • Một số b chia hết cho một số a, thì ta gọi a là ước của b, b là bội số của a
  • Ví dụ: tất cả ước của số 8 là 1, 2, 4, 8.

Cách giải bài toán trên như sau:

  • Nhập số nguyên từ bàn phím, ta gọi biến đó là n
  • Sử dụng vòng lặp for lặp từ 1 đến n, cấu trúc của vòng lặp for sẽ là for(int i = 1; i <= n; i++)
  • Tại mỗi vòng lặp thứ i, kiểm tra xem n có chia hết cho i hay không, ví dụ if(n % i == 0) thì i là ước của n

Chúng ta sẽ giải bài toán tìm tất cả ước của một số nguyên bằng cách sử dụng vòng lặp for trong C++ như sau:

#include <iostream>
using namespace std;

int main() {
    int n;
    cout << "Nhap so n: ";
    cin >> n;
    cout << "Tat ca cac uoc cua so " << n << " la ";
    for(int i = 1; i <= n; i++) {
        if(n % i == 0) {
            cout << i << " ";
        }
    }
    return 0;
}

Và kết quả sau khi thực thi chương trình trên như sau:

Khi nhập số n = 20:

Khi nhập số n = 13:

Khi nhập số n = 12:

Trong chương trình trên có sử dụng cấu trúc điều khiển if else trong C++, nếu bạn nào chưa nắm rõ thì có thể xem lại ở bài trước nhé.

Nguồn: freetuts.net