1 #include <cstdio>
2 #include <cstdlib>
3 #include <cstring>
4 #include <string>
5 #define MAX 300
6 int prom[MAX] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107};
7 char A[MAX];
8 char B[MAX];
9 int ans[MAX];
10
11 int isNEnd() {
12 if(strcmp(A,"0") == 0 && strcmp(B,"0") == 0) {
13 return 0;
14 }
15 else {
16 return 1;
17 }
18 }
19
20 int main(int argc, char const *argv[])
21 {
22 memset(A,-1,sizeof(A));
23 memset(B,-1,sizeof(B));
24
25 scanf("%s %s",A,B);
26 while(isNEnd()) {
27 int lenA = strlen(A);
28 int lenB = strlen(B);
29 int i = lenA - 1, j = lenB - 1;
30 int wtemp = 0;
31 int bitb = 0;
32 int bitc = 0;
33 while(i >= 0 || j >= 0) {
34 int i0 = i;
35 int j0 = j;
36 int numa = 0, numb = 0;
37 while(i >= 0 && A[i] != ',') {
38 //printf("%d
",A[i]);
39 i--;
40 }
41 if(i0 >= 0) {
42 for(int k = i + 1; k <= i0; k++) {
43 numa = numa * 10 + A[k] - '0';
44 }
45 }
46
47
48 while(j >= 0 && B[j] != ',') {
49 //printf("%d
",B[j]);
50 j--;
51 }
52 if(j0 >= 0) {
53 for(int k = j + 1; k <= j0; k++) {
54 numb = numb * 10 + B[k] - '0';
55 }
56 }
57
58
59 int bit = numa + numb + bitc;
60 bitb = bit % prom[wtemp];
61 bitc = bit / prom[wtemp];
62 ans[wtemp] = bitb;
63 i--;
64 j--;
65 wtemp++;
66 }
67 if(bitc != 0) {
68 ans[wtemp] = bitc;
69 wtemp++;
70 }
71 for(int i = wtemp -1; i >= 1; i--) {
72 printf("%d,",ans[i]);
73 }
74 printf("%d
",ans[0]);
75 scanf("%s %s",A,B);
76 }
77
78 return 0;
79 }