Pagini recente » Cod sursa (job #3222925) | Cod sursa (job #1840973) | Cod sursa (job #222503) | Cod sursa (job #1445530) | Cod sursa (job #1822208)
#include <cstdio>
#include <cstring>
using namespace std;
int cm[1000],cmi[1000],ih[1000],rez[1000];
int cmmdc(int a,int b)
{
int r;
while(b)
{
r = a % b;
a = b;
b = r;
}
return a;
}
int zu(int cm[1000])
{
int i;
for(i = cm[0];i >= 1;i--)
if(cm[i] > 1)
return 0;
return 1;
}
int nrcf(int nr)
{
int nrcf = 0;
do
{
nrcf++;
nr /= 10;
}while(nr);
return nrcf;
}
void trh(long long nr,int a[1000])
{
int nrc,i;
nrc = nrcf(nr);
a[0] = nrc;
for(i = 1;i <= a[0];i++)
{
a[i] = nr % 10;
nr /= 10;
}
}
void hugep(int a[1000],int b[1000],int c[1000])
{
int i,j,tr,aux;
for(i = 1;i <= c[0];i++)
c[i] = 0;
c[0] = a[0] + b[0] - 1;
for(i = 1;i <= a[0];i++)
for(j = 1;j <= b[0];j++)
c[i + j - 1] += a[i] * b[j];
tr = 0;
for(i = 1;i <= c[0];i++)
{
aux = c[i] + tr;
c[i] = aux % 10;
tr = aux / 10;
}
if(tr)
c[++c[0]] = tr;
}
int main()
{
freopen("multiplu.in", "r",stdin);
freopen("multiplu.out", "w",stdout);
int a,b,i;
scanf("%d%d", &a, &b);
long long cmmmc;
cmmmc = (a * b) / cmmdc(a,b);
trh(cmmmc,cm);
memcpy(cmi,cm,sizeof(cm));
for(i = 2;zu(cm) == 0;i++)
{
trh(i,ih);
hugep(cmi,ih,rez);
memcpy(cm,rez,sizeof(rez));
}
for(i = cm[0];i >= 1;i--)
printf("%d",cm[i]);
return 0;
}