Pagini recente » Cod sursa (job #2025189) | Cod sursa (job #2252964) | Cod sursa (job #154506) | Cod sursa (job #1142148) | Cod sursa (job #261176)
Cod sursa(job #261176)
#include <stdio.h>
char e[1000004];
int aux[10];
int a,b,cmm,a2;
void cmmmc(FILE *f1)
{
int ca,cb,r,cmm2;
fscanf(f1,"%d %d",&a,&b);
ca=a;
cb=b;
while(cb)
{
r=ca%cb;
ca=cb;
cb=r;
}
cmm=a*b/ca;
a=0;
cmm2=cmm;
while(cmm2)
{
cmm2=cmm2/10;
a++;
}
a2=a;
while(cmm)
{
aux[a]=cmm%10;
cmm=cmm/10;
a--;
}
}
void dezv1(int i)
{
int contor=0;
while(e[i]!=0)
{
if(e[i]>=10)
{
e[i-1]=e[i-1]+(e[i]-e[i]%10)/10;
e[i]=e[i]%10;
}
i--;
}
}
int dezv2()
{
int i=1,contor=0;
while(e[i]!=0)
{
if(e[i]>=10)
{
e[i+1]=e[i+1]+10*(e[i]-10*(e[i]/10));
e[i]=e[i]/10;
}
i++;
contor++;
}
return contor;
}
bool verificare(int contor)
{
int i;
bool b;
b=true;
for(i=1;i<=contor;i++)
if(e[i]!=0 && e[i]!=1)
{
b=false;
break;
}
return b;
}
int aflare()
{
int i,contor=a2,cc,temp,temp2;
bool b=false;
while(b==false)
{
cc=contor;
for(i=a2;i>=1;i--)
{
e[cc]=e[cc]+aux[i];
cc--;
}
for(i=2;i<=contor;i++)
if(e[i]>=10)
dezv1(i);
if(e[contor-a2+1]>=10)
contor=dezv2();
b=verificare(contor);
if(e[0]!=0)
{
contor++;
temp=e[0];
e[0]=0;
for(i=1;i<=contor;i++)
{
temp2=temp;
temp=e[i];
e[i]=temp2;
}
}
}
return contor;
}
int main()
{
int i,c;
FILE *f1,*f2;
f1=fopen("multiplu.in","r");
f2=fopen("multiplu.out","w");
cmmmc(f1);
c=aflare();
for(i=1;i<=c;i++)
fprintf(f2,"%d",e[i]);
fclose(f1);
fclose(f2);
return 0;
}