火星文 wa

来源:互联网 发布:淘宝学院官网 编辑:程序博客网 时间:2024/04/29 18:56

#include<stdio.h>
#include<string.h>
#include<math.h>

int SS[100];
int q=0;
void ss()
{
 int k=0,f,i,j;
 for(i=2;i<=500;i++)
 {
  f=1;
  k=(int)sqrt(i);
  for(j=2;j<=k;j++)
  {
   if(i%j==0)
   {
    f=0;
    break;
   }
  }
  if(f)
   SS[q++]=i;
 }
// for(i=0;i<q;i++)
//  printf("%d ",SS[i]);
}

int main()
{
 char a[100],b[100];
 __int64 m[100],n[100];
 int alen,blen;
 int i,j,k;
 int flag;
 __int64 sum,temp;
 while(scanf("%s%s",a,b))
 {
  if(strcmp(a,"0")==0||strcmp(b,"0")==0)
   break;
  i=j=k=0;
  alen=strlen(a);
  blen=strlen(b);
  ss();
  memset(m,0,sizeof(m));
  memset(n,0,sizeof(n));
  sum=0;
  flag=1;
  for(i=0;i<alen;i++)   //预处理
  {
   if(a[i]==',')
   {
    flag++;
    if(flag==2)
    {
     flag=1;
     m[j++]=sum;
     sum=0;
    }
    continue;
   }
   sum=sum*10+a[i]-'0';
   if(i==alen-1)
   {
    m[j++]=sum;
    break;
   }
  }

  for(i=0;i<j/2;i++)
  {
   temp=m[i];
   m[i]=m[j-i-1];
   m[j-i-1]=temp;
  }


  sum=0;
  flag=1;
  for(i=0;i<blen;i++)   //预处理
  {
   if(b[i]==',')
   {
    flag++;
    if(flag==2)
    {
     flag=1;
     n[k++]=sum;
     sum=0;
    }
    continue;
   }
   sum=sum*10+b[i]-'0';
   if(i==blen-1)
   {
    n[k++]=sum;
    break;
   }
  }

  for(i=0;i<k/2;i++)
  {
   temp=n[i];
   n[i]=n[k-i-1];
   n[k-i-1]=temp;
  }

  if(j<k)
  {
   temp=j;
   j=k;
   k=temp;
  }

  for(i=0;i<j;i++)
  {
   m[i]=m[i]+n[i];
   if(m[i]>=SS[i])
   {
    m[i+1]=m[i+1]+m[i]/SS[i];
    m[i]=m[i]%SS[i];
   }
  }
  if(m[j])
   printf("%I64d,",m[j]);
  printf("%d",m[j-1]);
  for(i=j-2;i>=0;i--)
  {
   printf(",%I64d",m[i]);
  }
  printf("\n");
 }
 return 0;
}

原创粉丝点击