Submission

Status:
TTTTTTTTTT

Score: 0

User: Monasm

Problemset: C.Sort Number

Language: cpp

Time: 1.095 second

Submitted On: 2024-10-24 08:03:00

#include <bits/stdc++.h>

using namespace std;

long long int base(int n,string s){
    long long int p = 1;
    long long int ans = 0;
    for(int i=s.size()-1;i>=0;i--){
        if(s[i]>='A'){
            ans+=(int(s[i])-int('A')+10)*p;
        }
        else{
            ans+=(int(s[i])-int('0'))*p;
        }
        p*=n;
    }
    return ans;
}

int main(){
    int t;cin >> t;
    vector<long long int> ans(t);
    for(int l=0;l<t;l++){
        int n;cin >> n;
        string s;cin >> s;
        ans[l] = base(n,s);
        long long int x = 0;
        for(int i=1;i*i<=ans[l];i++){
            if(ans[l]%i==0){
                x+=i;
                if(ans[l]/i!=i){
                    x+=ans[l]/i;
                }
            }
        }
        ans[l] = x;
    }
    sort(ans.begin(),ans.end());
    for(int i=t-1;i>=0;i--){
        cout<<ans[i]<<endl;
    }
    return 0;
}