Pagini recente » Cod sursa (job #307886) | Cod sursa (job #3287292) | Cod sursa (job #3271406) | Cod sursa (job #3281405) | Cod sursa (job #163309)
Cod sursa(job #163309)
#include<stdio.h>
#include<fstream.h>
long A,B,M;
long max (long A,long B) {return A>B?A:B;}
void citire()
{
freopen("multiplu.in","r",stdin);
scanf("%ld%ld",&A,&B);
long i,Ac,Bc,j,diva[100],divb[100],nra[100],nrb[100],viz[100],tm;
memset(diva,0,sizeof(diva));
memset(divb,0,sizeof(diva));
memset(nra,0,sizeof(diva));
memset(nrb,0,sizeof(diva));
memset(viz,0,sizeof(diva));
M=1;
Ac=A;
Bc=B;
for(i=2;i<=A;i++)
if(!(A%i))
{diva[++diva[0]]=i;
while(!(A%i)&&A)
{A/=i;
nra[diva[0]]++;
}
}
for(i=2;i<=B;i++)
if(!(B%i))
{divb[++divb[0]]=i;
while(!(B%i)&&B)
{B/=i;
nrb[divb[0]]++;
}
}
M=1;
memset(viz,0,sizeof(viz));
A=Ac;B=Bc;
for(i=1;i<=diva[0];i++)
{
for(j=1,tm=nra[i];j<=divb[0];j++)
if(diva[i]==divb[j])
{
viz[j]=1;
tm=max(tm,nrb[j]);
}
for(j=1;j<=tm;j++)
M*=diva[i];
}
for(i=1;i<=divb[0];i++)
if(!viz[i])
for(j=1;j<=nrb[i];j++)
M*=divb[i];
}
int main()
{long i,bun;
long long x;
citire();
for(i=1;1;i++)
{
x=(long long)M*i;
bun=1;
while(x)
{
if((x%10)>1) {bun=0;break;}
x/=10;
}
if(bun) break;
}
freopen("multiplu.out","w",stdout);
printf("%lld",(long long)M*i);
fclose(stdout);
return 0;
}