Submission
Status:
----------
Score: 0
User: Monasm
Problemset: C.Sort Number
Language: c
Time: 0.032 second
Submitted On: 2024-10-19 02:41:58
#include <stdio.h>
#include <string.h>
int base(char num[], int n) {
int ans = 0;
int p = 1;
for(int i=strlen(num)-1;i>=0;i--){
char d = num[i];
int v;
if(d>='0'&&d<='9'){
v = d-'0';
}
else{
v = d-'A'+10;
}
ans+=v*p;
p*=n;
}
return ans;
}
int main(){
int t;scanf("%d",&t);
int ans[t];
for(int k=0;k<t;k++){
int n;
scanf("%d",&n);
char num[1000];
scanf("%s",num);
int x = base(num,n);
ans[k] = 0;
for(int i=1;i*i<=x;i++){
if(x%i==0){
ans[k]+=i;
if(x/i!=i){
ans[k]+=x/i;
}
}
}
}
for(int i=0;i<t;i++){
for(int j=0;j<t;j++){
if(j+1<t&&ans[j]<ans[j+1]){
int temp = ans[j];
ans[j] = ans[j+1];
ans[j+1] = temp;
}
}
}
for(int i=0;i<t;i++){
printf("%d\n",ans[i]);
}
}