Pagini recente » Cod sursa (job #2828682) | Cod sursa (job #2799717) | Cod sursa (job #2710427) | Cod sursa (job #384978) | Cod sursa (job #2587698)
#include<fstream>
using namespace std;
ifstream f("multiplu.in");
ofstream g("multiplu.out");
struct nod{
int info;
nod *urm;
};
nod *vf=NULL;
void Adaugare(nod *&prim, int x)
{
nod *q=new nod;
q->info=x;
q->urm=NULL;
if(prim==NULL){
prim=q;
}
else{
nod *t=prim;
while(t->urm!=NULL){
t=t->urm;
}
t->urm=q;
}
}
void Stergere(nod *&prim)
{
nod *t=prim;
prim=prim->urm;
delete t;
}
int v[2000002],n;
int cmmdc(int x,int y)
{
int r=x%y;
while(r!=0)
{
x=y;
y=r;
r=x%y;
}
return y;
}
void sol(int x)
{
if(x!=-1)
{
sol(v[x]);
if((v[x]*10)%n==x)
g<<0;
else
g<<1;
}
}
int main()
{
int a,b,x,xx;
f>>a>>b;
n=a*b/cmmdc(a,b);
if(n==1)
g<<1;
else
{
Adaugare(vf,1);
v[1]=-1;
while(20==20)
{
xx=vf->info;
Stergere(vf);
x=xx*10;
x%=n;
if(v[x]==0)
{
v[x]=xx;
if(x==0)
break;
Adaugare(vf,x);
}
x=xx*10+1;
x%=n;
if(v[x]==0)
{
v[x]=xx;
if(x==0)
break;
Adaugare(vf,x);
}
}
}
sol(0);
return 0;
}