제출 #1274653

#제출 시각아이디문제언어결과실행 시간메모리
1274653AksLolCodingToys (CEOI18_toy)C++17
59 / 100
5090 ms1068 KiB
#include <bits/stdc++.h>
using namespace std;

set<int> ans;

void dfs(int n, int s) {
    // remaining divisors multiply to n, s sum is used
    ans.insert(n+s-1);
    for (int i = 2; i*i <= n; i++) {
        if (n%i == 0) {
            dfs(n/i, s+i-1);
        }
    }
}

void solve() {
    int n;
    cin >> n;
    dfs(n, 0);
    cout << ans.size() << '\n';
    for (int i : ans) cout << i << ' ';
}

signed main() {
    cin.tie(0)->sync_with_stdio(0);
    solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...