#萌新 纯C #include <stdio.h> #include <stdlib.h> int* find_tsusu() { int *a=(int*)malloc(sizeof(int)*25); int i=0; int num=2; while(i<25) { int qrt=num/2; int flag=0; for(int j=1;j<=qrt;j++) { if(num%j==0&&j!=num&&j!=1) { flag=1; break; } } if(flag==0) { a[i]=num; i++; } num++; } return a; } void reverse(int a[],int n) { int m=n; int *c=(int*)malloc(sizeof(int)*25); int i=0; while (n>=0) { c[i]=a[n]; n--; i++; } for(int i=0;i<=m;i++) { a[i]=c[i]; } } int main() { int *a=find_tsusu(); // for(int i=0;i<25;i++) // { // printf("%d\n",a[i]); // } char fa[100]; char fb[100]; int ia[25]={0}; int ib[25]={0}; int s=0; int v=0; scanf("%s",fa); scanf("%s",fb); //printf("%s",fb); for(int i=0;fa[i]!='\0';i++) { if(fa[i]!=',') { ia[s]=ia[s]*10+(fa[i]-'0'); } else { s++; } } for(int i=0;fb[i]!='\0';i++) { if(fb[i]!=',') { ib[v]=ib[v]*10+(fb[i]-'0'); } else { v++; } } reverse(ia, s); // printf("ia[0]:%d",ia[0]); reverse(ib, v); //for(int i=0;i<=s;i++)printf("%d ",ia[i]); //for(int i=0;i<=v;i++)printf("%d ",ib[i]); int w=0; int sum[26]={0}; int left=0; while(w<=s||w<=v) { if(w<=s&&w<=v) { int t_sum=ia[w]+ib[w]+left; //printf("t_sum:%d ",t_sum); left=0; if(t_sum>=a[w]) { left=1; sum[w]=t_sum-a[w]; } else sum[w]=t_sum; } else if(w>s&&w<=v) { int t_sum=ib[w]+left; //printf("t_sum:%d ",t_sum); left=0; if(t_sum>=a[w]) { left=1; sum[w]=t_sum-a[w]; } else sum[w]=t_sum; } else if(w>v&&w<=s) { int t_sum=ia[w]+left; //printf("t_sum:%d ",t_sum); left=0; if(t_sum>=a[w]) { left=1; sum[w]=t_sum-a[w]; } else sum[w]=t_sum; } w++; } if(left==1)sum[w]=1; else w--; for(int j=w;j>0;j--) { printf("%d,",sum[j]); } printf("%d",sum[0]); return 0; }