Submission
Status:
TTTTTTTTTT
Score: 0
User: Cmoss9
Problemset: C.Sort Number
Language: cpp
Time: 1.094 second
Submitted On: 2024-11-10 22:19:03
#include <stdio.h>
#include <string.h>
#include <math.h>
int main () {
int n;
scanf("%d",&n);
int base[n];
char num[n][100];
int base10[n];
for (int i = 0;i<n;i++) {
base10[i] = 0;
}
for (int i = 0;i<n;i++) {
scanf("%d",&base[i]);
scanf("%s",num[i]);
if (base[i]==10) {
for (int j = 0;j<strlen(num[i]);j++) {
base10[i] *= base[i];
base10[i] += num[i][j] - '0';
}
} else if (base[i]>10) {
for (int j = 0;j<strlen(num[i]);j++) {
if ('0' <= num[i][j] && num[i][j] <= '9') {
base10[i] += (num[i][j] - '0')*pow(base[i],strlen(num[i])-j-1);
} else if ('A' <= num[i][j] && num[i][j] <= 'F') {
base10[i] += (num[i][j] - '7')*pow(base[i],strlen(num[i])-j-1);
}
}
} else if (base[i]<10) {
for (int j = 0;j<strlen(num[i]);j++) {
base10[i] += (num[i][j] - '0')*pow(base[i],strlen(num[i])-j-1);
}
}
}
int sum[n];
for (int i = 0;i<n;i++) {
sum[i] = 0;
}
for (int i = 0;i<n;i++) {
for (int j = 1;j<=base10[i]/2;j++) {
if (base10[i]%j == 0) {
sum[i] += j;
}
}
sum[i] += base10[i];
}
for (int i = 0;i<n-1;i++) {
for (int j = i;j<n-i-1;j++) {
if (sum[j] < sum[j+1]) {
int temp = sum[j];
sum[j] = sum[j+1];
sum[j+1] = temp;
}
}
}
for (int i = 0;i<n;i++) {
printf("%d\n",sum[i]);
}
}