Pagini recente » Cod sursa (job #1581493) | Cod sursa (job #2041731) | Cod sursa (job #1596713) | Cod sursa (job #2278690) | Cod sursa (job #253644)
Cod sursa(job #253644)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define NM 2000001
#define SM 2000001
long r[NM+1];
long us[NM+1];
char c[SM],si[SM];
long last[NM+1];
int main()
{
long a,b,cmmdc,cmmmc,rest,li,ls,gata,x,y,i,j,l;
char aux;
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
scanf("%ld%ld",&a,&b);
cmmmc=a*b;
rest=a%b;
while(rest){
a=b;
b=rest;
rest=a%b;
}
cmmdc=b;
cmmmc/=cmmdc;
li=1;r[1]=1;us[1]=1;last[1]=0;c[li]=49;
gata=0; ls=li;
while(!gata){
x=r[li];
x*=10;y=x%cmmmc;
if(!us[y]){ ls++,r[ls]=y;us[y]=1;c[ls]=48;last[ls]=li;}
if(!y) break;
y++;if(y==cmmmc) y=0;
if(!us[y]){ ls++,r[ls]=y;us[y]=1;c[ls]=49;last[ls]=li;}
if(!y) break;
li++;
}
i=ls;j=0;
while(i){
si[j++]=c[i];
i=last[i];
}
l=strlen(si);
for(i=0;i<l/2;++i)
aux=si[i],si[i]=si[l-i-1],si[l-i-1]=aux;
printf("%s",si);
return 0;
}