Pagini recente » Cod sursa (job #1472351) | Cod sursa (job #489358) | Cod sursa (job #1351765) | Cod sursa (job #2221367) | Cod sursa (job #1642830)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string.h>
#include <queue>
#include <vector>
#include <stack>
#include <ctype.h>
#include <cmath>
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
const int MAXN=2e6+5;
int f[MAXN],cifra[MAXN],deLa[MAXN];
int a,b,div1;
vector<int> sol;
int cmmdc(int a, int b)
{
while(a%b!=0)
{
int r=a%b;
a=b;
b=r;
}
return b;
}
int cmmmc(int a, int b)
{
return a*b/cmmdc(a,b);
}
void solve()
{
queue < int > q;
q.push(1);
while(!q.empty())
{
int rest= q.front();
q.pop();
if(rest == 0) break;
for(int i=0; i<=1; i++)
{
int restNou=(rest*10+i)%div1;
if(!f[restNou])
{
f[restNou]=1;
deLa[restNou]=rest;
cifra[restNou]=i;
q.push(restNou);
}
}
}
}
int main()
{
fin>>a>>b;
div1=cmmmc(a,b);
solve();
if(f[0])
{
int rest = 0;
while (rest != 1)
{
sol.push_back(cifra[rest]);
rest=deLa[rest];
}
fout<<1;
for(int i=sol.size()-1; i>=0; i--) fout<<sol[i];
}
}