#include char mod(int a, int b) { char c = a % b; if (c < 10) c += '0'; else c += 'A' - 10; return c; } int get_num(char *c, int index) { if (index < 0) return 0; if (c[index] <= '9') return c[index] - '0'; return c[index] - 'A' + 10; } int set_num(char *c, int index, int num, int so) { c[index] = mod(num, so); return num / so; } int radek() { int so; char a[1001]; char b[1001]; char c[1002]; int ia, ib, ic; int zb; int i; scanf("%d", &so); if (so == 0) return 0; scanf("%s %s\n", a, b); printf("%s + %s = ", a, b); if (so == 1) { zb = 0; if (a[0] != '0') zb += strlen(a); if (b[0] != '0') zb += strlen(b); if (zb == 0) printf("0"); else for (i = 0; i < zb; i++) printf("1"); printf("\n"); return 1; } ia = strlen(a) - 1; ib = strlen(b) - 1; ic = 0; zb = 0; while (ia > -1 || zb > 0 || ib > -1) { zb = set_num(c, ic, get_num(a, ia) + get_num(b, ib) + zb, so); ia--; ib--; ic++; } c[ic] = '\0'; for (ic--; ic > -1; ic--) printf("%c", c[ic]); printf("\n"); return 1; } int main() { while (radek()) ; return 0; }