Submission

Status:
PPPPPPPPPP

Score: 100

User: amongus

Problemset: C.Sort Number

Language: cpp

Time: 0.042 second

Submitted On: 2024-10-15 19:02:09

#include<bits/stdc++.h>
using namespace std;
char a[100005];
vector<long long> vec;

long long solve(long long temp){
    long long s=sqrt(temp);
    long long rem=0;
    for(int i=1;i<=s;i++){
        if(temp%i==0){
            rem=rem+i;
            rem+=(i * i == temp ? 0 : (temp/i));
        }
    }
    return rem;


}
int main(){
    int q;
    scanf("%d",&q);
    while(q--){
        int x;
        long long t=0;
        scanf("%d %s",&x,a);
        for(int i=0;a[i]!='\0';i++){
            t=t*x;
            if('0'<=a[i] &&a[i]<='9'){
                t=t+a[i]-'0';
            }else{
                t=t+a[i]-'A'+10;
            }

        }
        vec.push_back(solve(t));
    }

    sort(vec.begin(),vec.end(),greater<long long>());
    for(int i=0;i<vec.size();i++){
        printf("%lld\n",vec[i]);
    }



}