QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#676978 | #9248. An Easy Math Problem | H_ZzZ# | TL | 0ms | 3780kb | C++20 | 1.0kb | 2024-10-26 07:52:21 | 2024-10-26 07:52:21 |
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-26 07:52:21]
- Submitted
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
int __ = 1,n;
void solve(){
cin >> n;
vector<int>ve;
for(int i = 1; i * i <= n; ++ i)
{
if(n%i == 0)
{
if(i*i == n) ve.push_back(i);
else ve.push_back(i), ve.push_back(n/i);
}
}
vector<pair<int,int>>v;
for(int i = 0; i < ve.size(); ++ i)
{
for(int j = 1; j*j <= ve[i]; ++ j)
{
if(ve[i] % j == 0)
{
int p, q;
p = j, q = ve[i]/j;
if(p > q) swap(p,q);
int gc = gcd(p,q);
p /= gc, q /= gc;
v.emplace_back(p,q);
}
}
}
sort(v.begin(),v.end());
v.erase(unique(v.begin(),v.end()),v.end());
cout << v.size() << '\n';
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
cin >> __;
while (__--){
solve();
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3780kb
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...