#include <stdio.h>
#include <stdint.h>
void print_base(uint16_t num, uint8_t base) {
// Buffer to hold digits (max 16 bits → 16 binary digits + null terminator)
char buffer[33];
int index = 0;
// Special case for 0
if (num == 0) {
printf("0\n");
return;
}
while (num > 0) {
uint8_t digit = num % base;
if (digit < 10)
buffer[index++] = '0' + digit; // 0–9
else
buffer[index++] = 'A' + (digit - 10); // A–F for hex
num /= base;
}
// Digits are stored in reverse order, so print backwards
for (int i = index - 1; i >= 0; i--) {
putchar(buffer[i]);
}
putchar('\n');
}
int main() {
uint16_t num;
uint8_t base;
scanf("%hu %hhu", &num, &base);
print_base(num, base);
return 0;
}
Input
10 2
Expected Output
1010