Cod sursa(job #2647610)

Utilizator Maria23Dutu Maria Maria23 Data 5 septembrie 2020 15:37:50
Problema Consecutive Scor 100
Compilator cpp-64 Status done
Runda Arhiva ICPC Marime 0.7 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream cin ("consecutive.in");
ofstream cout ("consecutive.out");

long long gauss(int n) {
    return 1LL * n * (n + 1) / 2;
}

int main() {
    int t;
    cin >> t;
    while (t --) {
        int n;
        cin >> n;
        vector < pair <int, int> > sol;
        int l = 2;
        while (gauss(l) <= n) {
            int rest = n - static_cast<int>(gauss(l));
            if (rest % l == 0) {
                sol.emplace_back(1 + rest/l, l + rest/l);
            }
            l += 1;
        }
        cout << sol.size() << '\n';
        for (auto &x: sol) {
            cout << x.first << ' ' << x.second << '\n';
        }
    }
    return 0;
}