Cho một số nguyên dương N. Hãy lập trình đọc số N và tìm các ước số của N (1 ≤ N ≤ 10^12). Kết quả ước số in theo đúng yêu cầu.

2 câu trả lời

var n,i:longint;
begin
     readln(n);
     for i:=1 to n do
     if n mod i=0 then write(i,' ');
     readln;
end.

#include <bits/stdc++.h>

using namespace std;

#define ll long long

int main() {
    ll n;
    cin >> n;
    
    vector<ll> divisors;
    
    divisors.push_back(1);
    divisors.push_back(n);
    
    for (ll i = 2; i * i <= n; ++i) {
        if (n % i == 0) {
            divisors.push_back(i);
            if (i * i != n) divisors.push_back(n / i);
        }
    }
    
    sort(divisors.begin(), divisors.end());
    
    for (ll i = 0; i < divisors.size(); ++i) cout << divisors[i] << " ";
}