Pagini recente » Cod sursa (job #2518769) | Cod sursa (job #115116) | Cod sursa (job #469439) | Cod sursa (job #279695) | Cod sursa (job #2147471)
#include <bits/stdc++.h>
using namespace std;
ifstream in("multiplu.in");
ofstream out("multiplu.out");//cuie=hollol
struct cuie
{
int parent,rest,cifra;
};
vector <cuie> v;
bool nr[100001];
bool ap[2000001];
int cmmmc(int a,int b)
{
int rest,ca=a,cb=b;
while(b)
{
rest=a%b;
a=b;
b=rest;
}
return ca*cb/a;
}
int main()
{
int n,i=1,a,b,poz=1,unde=1;
in>>a>>b;
cuie current,current0,current1;
n=cmmmc(a,b);
current.parent=1;
current.rest=1%n;
current.cifra=1;
v.push_back(current);;
v.push_back(current);;
ap[v[1].rest]=1;
while(v[poz].rest!=0)
{
current=v[poz];
current0=current1=current;
current0.rest*=10;
current0.rest%=n;
current0.parent=current1.parent=poz;
current1.rest=(current1.rest*10+1)%n;
current0.cifra=0;
current1.cifra=1;
if(ap[current0.rest]==0)
{
v.push_back(current0);
ap[current0.rest]=1;
unde++;
if(current0.rest==0)
{
break;
}
}
if(ap[current1.rest]==0)
{
v.push_back(current1);
ap[current1.rest]=1;
unde++;
if(current1.rest==0)
{
break;
}
}
poz++;
}
int catecif=1;
nr[0]=0;
while(unde>=1)
{
nr[catecif]=v[unde].cifra;
if(unde==1)
break;
catecif++;
unde=v[unde].parent;
}
reverse(nr+1,nr+catecif+1);
for(i=1;i<=catecif;i++)
out<<nr[i];
return 0;
}