这里主要进位问题;
按字符读入
for 遍历字符串
    if 是 ‘,’
        if 现在是a     a.push_back(num);
        else 现在是b    b.push_back(num);
        num=0;  位数=1;
    else if 是‘+’
        num=0;  位数=1
        现在改成b
    else 是数字
        num=num+位数*数字
        位数*10
b.push_back(最后一个num)

for 遍历a和b直到其中一个的最后{
    ans.push_back(a+b+进位)%prime[i]
    进位=(a+b+进位)/prime[i]
}
while 直到a的最后
    重复上述
while 直到b的最后
    重复上述
if (进位非零)ans.push_back(进位)

for ans从后往前输出

#include <bits/stdc++.h>
using namespace std;

int prime[10]={2,3,5,7,11,13};
string s;
vector<int> a,b,ans;
int num,flag,re,dig=1;

int main(int argc, char** argv) {
	cin>>s;
	for(int i=s.size()-1;i>=0;i--){
		if(s[i]==','){
			if(flag==0)
				a.push_back(num);
			else 
				b.push_back(num);
			num=0; dig=1;
		}else if(s[i]=='+'){
			a.push_back(num);
			flag=1;
			num=0;
			dig=1;
		}else {
			num=num+(s[i]-'0')*dig;
			dig*=10;
		}
	}
	b.push_back(num);
	
	int i;
	for(i=0;i<a.size()&&i<b.size();i++){
		ans.push_back((a[i]+b[i]+re)%prime[i]);
		re=(a[i]+b[i]+re)/prime[i];		
	}
	while(i<a.size()) ans.push_back((a[i]+re)%prime[i]), re=(a[i]+re)/prime[i], i++;
	while(i<b.size()) ans.push_back((b[i]+re)%prime[i]), re=(b[i]+re)/prime[i], i++;
	if(re) ans.push_back(re);
	
	for(int i=0;i<ans.size();i++){
		ans[i]%=prime[i];
		ans[i+1]+=ans[i]/prime[i];
	}
	for(int i=ans.size()-1;i>=0;i--){
		cout<<ans[i];
		if(i) cout<<",";
	}
	return 0;
}