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]);
    }
}