Submission
Status:
----------
Score: 0
User: Cmoss9
Problemset: C.Sort Number
Language: cpp
Time: 0.072 second
Submitted On: 2024-11-10 22:16:00
#include <bits/stdc++.h>
using namespace std;
int convertToBase10(int base, const string& num) {
int result = 0;
for (char c : num) {
result *= base;
if ('0' <= c && c <= '9') result += c - '0';
else if ('A' <= c && c <= 'F') result += c - '7';
}
return result;
}
int sumOfDivisors(int num) {
int sum = 0;
for (int i = 1; i <= sqrt(num); i++) {
if (num % i == 0) {
sum += i;
if (i != num / i) sum += num / i;
}
}
return sum;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int n;
cin >> n;
vector<int> sum(n);
for (int i = 0; i < n; i++) {
int base;
string num;
cin >> base >> num;
int base10 = convertToBase10(base, num);
sum[i] = sumOfDivisors(base10);
}
sort(sum.rbegin(), sum.rend());
for (int s : sum) {
cout << s << endl;
}
return 0;
}