Submission

Status:
PPPPPPPPPP

Score: 100

User: Monasm

Problemset: C.Sort Number

Language: cpp

Time: 0.049 second

Submitted On: 2024-10-19 03:10:59

#include<stdio.h> 
#include<string.h> 
#include<math.h> 
int n,N; 
unsigned long long int sum,cnt=0,b[1005],tmp; 
char a[30]; 
int main(){ 
    scanf("%d",&n); 
    for(int j=0; j<n; j++){ 
        scanf("%d %s",&N,a); 
        for(int i=0; a[i]!='\0'; i++){ 
            if(a[i]>='A') sum+=(a[i]-'A'+10)*pow(N,strlen(a)-i-1); 
            else sum+=(a[i]-'0')*pow(N,strlen(a)-i-1); 
        } 
        for(int i=1; i<=sqrt(sum); i++){ 
            if(sum%i==0){ 
                if(i==sum/i) cnt+=i; 
                else cnt+=(i+sum/i); 
            } 
        } 
        b[j]=cnt; 
        sum=cnt=0; 
    } 
    for(int i=0; i<n; i++){ 
        for(int j=i+1; j<n; j++){ 
            if(b[i]<b[j]) tmp=b[i],b[i]=b[j],b[j]=tmp; 
        } 
    } 
    for(int i=0; i<n; i++){ 
        printf("%llu\n",b[i]); 
    } 
}