「QFOI R2」树色尤含残雨 官方题解
考查内容:
- 【3】整数唯一分解定理。
- 【3】贪心法。
设
当
当
否则,答案一定为
int x, y;
cin >> x; y = x;
vector<tuple<int, int>> div;
bool squarefree = true;
for(int i = 2; i * i <= x; ++i) {
if(x % i == 0) {
int cnt = 0;
for(; x % i == 0; x /= i) ++cnt;
div.emplace_back(i, cnt);
if(cnt >= 2) squarefree = false;
}
}
if(x > 1) div.emplace_back(x, 1);
if((int)div.size() == 1) cout << y << endl;
else if(squarefree) {
if((int)div.size() & 1) cout << get<0>(div[0]) << endl;
else cout << 1 << endl;
}
else cout << 1 << endl;