Pagini recente » Monitorul de evaluare | Borderou de evaluare (job #2678652) | Cod sursa (job #2598395) | Borderou de evaluare (job #3187687) | Cod sursa (job #278202)
Cod sursa(job #278202)
#include <fstream>
using namespace std;
int a,b,m,i,j,v[20000],ret[20000],x[20000],c;
ifstream in ("multiplu.in");
ofstream out ("multiplu.out");
int gcd(int a, int b)
{
if (!b) return a;
return gcd(b, a%b);
}
int write(int a)
{
if (ret[a]>=0)
write(ret[a]);
out<<v[a];
}
int main()
{
in>>a>>b;
m=(a*b)/gcd(a,b);
for (i=0;i<m;i++)
v[i]=-1;
i=j=0;
x[0]=1;
v[1]=1;
ret[1]=-1;
while (i<=j)
{
c=x[i]*10%m;
if (v[c]==-1)
{
v[c]=0;
ret[c]=v[i];
v[++j]=c;
if (!c)
{
write(0);
return 0;
}
}
c=x[i]*10%m;
if (v[c]==-1)
{
v[c]=0;
ret[c]=v[i];
v[++j]=c;
if (!c)
{
write(0);
return 0;
}
}
i++;
}
return 0;
}