Submission
Status:
TTTTTTTTTT
Score: 0
User: Cmoss9
Problemset: C.Sort Number
Language: c
Time: 1.095 second
Submitted On: 2024-11-10 22:21:16
#include <stdio.h>
int stringlength(char s[]) {
int count = 0;
while (s[count] != '\0') {
count++;
}
return count;
}
int power(int base,int exp) {
int ini = 1;
for (int i = 0;i<exp;i++) {
ini *= base;
}
return ini;
}
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<stringlength(num[i]);j++) {
base10[i] *= base[i];
base10[i] += num[i][j] - '0';
}
} else if (base[i]>10) {
for (int j = 0;j<stringlength(num[i]);j++) {
if ('0' <= num[i][j] && num[i][j] <= '9') {
base10[i] += (num[i][j] - '0')*power(base[i],stringlength(num[i])-j-1);
} else if ('A' <= num[i][j] && num[i][j] <= 'F') {
base10[i] += (num[i][j] - '7')*power(base[i],stringlength(num[i])-j-1);
}
}
} else if (base[i]<10) {
for (int j = 0;j<stringlength(num[i]);j++) {
base10[i] += (num[i][j] - '0')*power(base[i],stringlength(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]);
}
}