QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#670902 | #9248. An Easy Math Problem | snow_miku# | TL | 0ms | 3464kb | C++23 | 910b | 2024-10-24 08:26:24 | 2024-10-24 08:26:24 |
Judging History
This is the latest submission verdict.
- [2024-10-31 22:36:43]
- hack成功,自动添加数据
- (/hack/1098)
- [2024-10-31 22:13:58]
- hack成功,自动添加数据
- (/hack/1096)
- [2024-10-31 22:00:43]
- hack成功,自动添加数据
- (/hack/1095)
- [2024-10-24 08:26:24]
- Submitted
answer
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
void solve(){
ll n;
cin >> n;
ll m = sqrt(n);
vector<ll> num;
for(ll i = 1; i <= m; i++){
if(n % i == 0){num.push_back(i); num.push_back(n/i);}
}
sort(num.begin(), num.end());
vector<pair<ll, ll>> ans;
for(int i = 0; i < num.size(); i++){
for(int j = i; j < num.size(); j++){
ll d = __gcd(num[i], num[j]);
ans.push_back({num[i]/d, num[j]/d});
}
}
sort(ans.begin(), ans.end());
ans.erase(unique(ans.begin(), ans.end()), ans.end());
// for(int i = 0; i < ans.size(); i ++){
// cout << ans[i].first << " " << ans[i].second << endl;
// }
cout << ans.size() << "\n";
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int t;
cin >> t;
while(t--)
solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3464kb
input:
10 1 2 3 4 5 6 7 8 9 10
output:
1 2 2 3 2 5 2 4 3 5
result:
ok 10 lines
Test #2:
score: -100
Time Limit Exceeded
input:
2000 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 6469693230 646969323...