#include char mod(int a, int b) { char c = a % b; if (c < 10) c += '0'; else c += 'A' - 10; return c; } int read(int so) { int k, i, exp; char s[1001]; scanf("%s", s); if (so == 1) if (s[0] == '0') k = 0; else k = strlen(s); else { k = 0; exp = 1; for (i = strlen(s)-1; i > -1; i--, exp *= so) { if (s[i] >= '0' && s[i] <= '9') k += (s[i] - '0') * exp; else k += (s[i] - 'A' + 10) * exp; } } printf("%s", s); return k; } void write(int a, int so) { char s[2000]; int i; if (so == 1) { if (a == 0) printf("0"); else for (i = 0; i < a; i++) printf("1"); } else { i = 0; while (a >= so) { s[i++] = mod(a, so); a /= so; } s[i] = a; if (a < 10) s[i] += '0'; else s[i] += 'A' - 10; s[i+1] = '\0'; for(; i > -1; i--) printf("%c", s[i]); } } int radek() { int so, a, b, c; scanf("%d", &so); if (so == 0) return 0; scanf("\n"); a = read(so); printf(" + "); b = read(so); scanf("\n"); c = a + b; printf(" = "); write(c, so); printf("\n"); return 1; } int main() { while (radek()) ; return 0; }