#include<stdio.h>
#include<conio.h>
char P[80]="1415926535897932384626433832795028841971693993751058209749445923078164062862";
char N[2][2][80];
char T[80],R[81];
char A[2][80],B[2][80];
int C[]={1,10,100};
int a=79,b,c,d,e,x,y=60; //Aproximacion
void Division(F){
for(y=81;--y;R[y]=10);
do{
R[b=d=y+1]--;
for(a=0,x=80;x--;)
a=N[0][F][x]*R[b]+a/10,
T[x]=a?a%10:0;
for(c=0,x=80;x--;)
a=(d?N[1][F][--d]:0)-T[x]-c,
T[x]=a+10*(c=a<0);
if(!c) for(y++,x=80;b--;)
N[1][F][b]=T[--x];
}while(y<80);
}
int main(){
clrscr();
for(x=y;x--;)
N[0][0][a--]=P[x+1]=P[x]-=48;
B[0][79]=A[1][79]=N[1][0][a]=1;
B[1][79]=P[0]=3; //Parte entera
Inicio:
Division(0);
a=d=e=x=0;
do{
N[1][0][x]=N[0][0][x];
e+=N[0][0][x]=T[x];
if(a+=R[++x]||x>77)
d+=R[x]*C[80-x],
printf("%c",d?R[x]+48:32);
}while(x<80);
printf(" ");
for(y=2;y--;)
for(c=d;c--;)
for(a=0,x=80;x--;)
b=B[y][x],
a=A[y][x]+b+a/10,
A[y][x]=c?a%10:b,
B[y][x]=c?b:a%10;
for(y=2;y--;printf("%c",61-14*y))
for(a=c=x=0;x<80;x++,c+=!a)
if(a+=b=B[y][x])
printf("%u",N[y][1][x-c*y]=b);
if(c<63) printf("\n ");
Division(1);
for(a=b=x=0;x<80;N[1][1][x++]=0)
if(a+=c=R[x+1])
if(P[b]!=c) break;
else if(b++) printf("%u",c);
else printf("%u,",c);
if(getch()==27||!e) return 0;
printf("\n");
goto Inicio;
}