Cod sursa(job #115124)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 16 decembrie 2007 11:02:25
Problema Multiplu Scor 10
Compilator cpp Status done
Runda preONI 2008, Runda 2, Clasa a 10-a Marime 0.86 kb
#include <stdio.h>

long a, b, cmm, ok;
int rez[100000], c[100];

long max(long a, long b)
{
	if (a > b) return a;
	return b;
}

void cmmmc()
{
	int aux;
	cmm = max (a, b);
	aux = cmm;
	while (cmm % a != 0 || cmm % b != 0 ) cmm += aux;
}

void make()
{
	while (cmm)
	{
		c[0]++;
		c[c[0]] = cmm % 10;
		cmm /= 10;
	}
}



void add(int A[], int B[])
{
  long i, t = 0;
  for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
  {
     A[i] = (t += A[i] + B[i]) % 10;
     if (A[i] && A[i] != 1) ok = 0;
  }
  A[0]= i - 1;
}

void afis()
{
	int i;
	for (i = rez[0]; i >= 1; i--)
		printf("%d",rez[i]);
	printf("\n");
}

int main()
{
	freopen("multiplu.in","r",stdin);
	freopen("multiplu.out","w",stdout);
	scanf("%ld %ld",&a,&b);
	cmmmc();
    make();
	do
	{
		ok = 1;
		add(rez,c);
	}while (!ok);
	afis();
	return 0;
}