QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#676978#9248. An Easy Math ProblemH_ZzZ#TL 0ms3780kbC++201.0kb2024-10-26 07:52:212024-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]
  • Judged
  • Verdict: TL
  • Time: 0ms
  • Memory: 3780kb
  • [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...

output:


result: