Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm tất cả ước số của số tự nhiên - Cách 2 (tối ưu) C++


Tìm tất cả ước số của số n. Cách tối ưu: chỉ duyệt đến √n. Nếu i chia hết n, thì cả i và n/i đều là ước. Nếu i == n/i (n là bình phương hoàn hảo) chỉ in một lần.

Ví dụ mã nguồn

#include <bits/stdc++.h>
using namespace std;

void findDivisors(int n) {
    for (int i=1; i*i<=n; i++) {
        if (n % i == 0) {
            if (i == n/i) cout << i << ' ';
            else cout << i << ' ' << n/i << ' ';
        }
    }
    cout << endl;
}

int main() {
    findDivisors(65); // 1 65 5 13
    return 0;
}

Kết quả

1 65 5 13

Ước số của 65: 1, 5, 13, 65. Thứ tự xuất hiện không sắp xếp.