AC

许诺 · 发布于 2025-08-01 · 浏览 312 回复 0
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std; vector get_divisors(int m) {

vector<int> divisors;
for (int i = 2; i * i <= m; ++i) {
    if (m % i == 0) {
        divisors.push_back(i);
        if (i != m / i) {
            divisors.push_back(m / i);
        }
    }
}
sort(divisors.begin(), divisors.end());
if (m > 1) {
    divisors.push_back(m);
}
divisors.erase(unique(divisors.begin(), divisors.end()), divisors.end());
return divisors;

}

int main() {

int n;
cin >> n;
int m = n - 1;
vector<int> divisors = get_divisors(m);
for (size_t i = 0; i < divisors.size(); ++i) {
    if (i != 0) cout << " ";
    cout << divisors[i];
}
cout << endl;
return 0;

}

全部回复 共 0 条

还没有人回复。往下写第一条。

发表回复