Cod sursa(job #115053)

Utilizator mariussMarius Telespan mariuss Data 16 decembrie 2007 10:30:15
Problema Multiplu Scor 20
Compilator cpp Status done
Runda preONI 2008, Runda 2, Clasele 11-12 Marime 0.97 kb
#include<stdio.h>
#include<math.h>
long int i,j,a,b,cmd,cmm,rasp,rest,c;
short int v[1000];

inline long int min(long int x, long int y)
{
	if(x<y)
		return x;
	else
		return y;

}

int mod(short int a[],long int b)
{
	int i,t=0;
	for(i=a[0];i>0;i--)
		t=(t*10+a[i])%b;

	return t;
}

int main()
{
	freopen("multiplu.in","r",stdin);
	freopen("multiplu.out","w",stdout);

	scanf("%ld %ld",&a,&b);
	c=min(a,b);
	for(i=c;i>0;i--)
		if(a%i==0&&b%i==0)
		{
			cmd=i;
			break;
		}
   cmm=a*b/cmd;

   v[2]=1;
   v[0]=2;

   while(!rasp)
   {
		rest=mod(v,cmm);
		if(rest==0)
		{
			for(i=v[0];i>0;i--)
				printf("%ld",v[i]);
			rasp=1;
			break;
		}
		else
		{
			v[1]++;
			if(v[1]==2)
			{
				v[1]=0;
				for(i=2;i<=v[0];i++)
				{
					if(v[i]==1)
						v[i]=0;
					else
					{
						v[i]=1;
						break;
					}
				}

				if(v[v[0]]==0)
				{
					v[0]++;
					v[v[0]]=1;
				}
			}
		}
   }

   return 0;

}