#include<stdio.h>
#include<conio.h>
//char P[]="16180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911374847540880753868917521266338622235369317";
//char P[]="27182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274274663919320030599218174135966290435729";
char P[]="31415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317";
char A[2][80],B[2][80];
char N[2][2][80];
char T[80],R[81];
int C[]={1,10,100};
int a,b,c,d,e,x=79,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();
while(--y) N[0][0][x--]=P[y]-=48;
B[0][79]=A[1][79]=N[1][0][x]=1;
B[1][79]=P[0]-48;
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=y=x=0;x<80;N[1][1][x++]=0)
if(a+=c=R[x+1])
if(!b++) printf("%u,",c);
else if(y+=P[b-1]!=c) continue;
else printf("%u",c);
if(getch()==27||!e) return 0;
printf("\n");
goto Inicio;
}