Pagini recente » Cod sursa (job #403496) | Cod sursa (job #2572691) | Cod sursa (job #236353) | Cod sursa (job #22445) | Cod sursa (job #2490740)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("multiplu.in");
ofstream g ("multiplu.out");
int a , b;
bitset < 2000050 > mark;
queue < vector < short > > c;
vector < short > d;
int cmmdc(int a , int b)
{
int r;
while(b)
{
r = a % b;
a = b;
b = r;
}
return a;
}
int Divide(vector < short > a , int x)
{
int r = 0 , i;
for(i = 1 ; i <= a[0] ; i++)
{
r = r * 10 + a[i];
r = r % x;
}
return r;
}
void Print_Answer(vector < short > a)
{
for(int i = 1 ; i <= a[0] ; i++)
g << a[i];
exit(0);
}
int main()
{
f >> a >> b;
int m = a * b / cmmdc(a , b) , r;
mark[1] = 1;
d.push_back(1);
d.push_back(1);
c.push(d);
while(!c.empty())
{
d = c.front();
c.pop();
++d[0];
d.push_back(0);
r = Divide(d , m);
if(r == 0)
Print_Answer(d);
if(!mark[r])
c.push(d) , mark[r] = 1;
d[d[0]] = 1;
r = Divide(d , m);
if(r == 0)
Print_Answer(d);
if(!mark[r])
c.push(d) , mark[r] = 1;
}
return 0;
}