Cod sursa(job #392158)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 6 februarie 2010 21:05:09
Problema Multiplu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<stdio.h>
#define M 20000
char viz[M];
int a,b,c,prod,nr,coada[1000],num;
int cmmdc(int a, int b)
{
	if (!b)
	return a;
	return (b,a%b);
}
void bf()
{
	viz[1]=1;
	num=1;
	coada[0]=1;
	int p=0,u=1,x,y;
	while (p!=u)
	{
		x=coada[p++];
		y=(x*10+0)%nr;
		++num;
		if (!y)
		return;
		if (!viz[y])
			coada[u++]=y,viz[y]=1;
		y=(x*10+1)%nr;
		if (!y)
		return;
		if (!viz[y])
			coada[u++]=y,viz[y]=1;
	}
}
void solve(int num)
{
	if (!num)
	{
		printf("1");
		return;
	}
	if (num&1)//am adaugat 0
	{
	    solve(num>>1);
	    printf("0");
	}
	else
	       {
	       solve(num>>1);
               printf("1");
	       }

}
int main()
{
	freopen("multiplu.in","r",stdin);
	freopen("multiplu.out","w",stdout);
	scanf("%d%d",&a,&b);
	prod=a*b;
	c=cmmdc(a,b);
	nr=prod/c;
	bf();
	solve(num);
	return 0;
}