17108972589718074 
                 1439528307936299026 
                080765545554532458183 
               43255130543516432376912 
              4663791911119657860822050 
             367340495642348613717749611 
            38104459104482535212494659899 
           5225079402598873366451131040234 
          240130493689852679573590918519290 
         66647636392705738600295487428650940 
        0535103538524596394743595531728001643 
       083783948745781956212836911156587085000 
      40781396853030778257813849856692950471963 
     5089328018573725755534194119396813233357487 
    709737509271413007324171020350516977549843435 
   61187933295519151457453789138048055187827977590 
  7750007855795139817496078270462761613125177420579 
   97170554688538703689036095806399241086011592997 
    020790226888203087101533653915806041722653430 
     0377642434651424325601245917031000886439794 
      86942002854170097571338930915447098888372 
       333024657251637441276280296188483408232 
        2723195014038951851520634322622612616 
         12431271509190879459978732133255390 
          601413833379281814639023615443036 
           2338368861798856260050552801204 
            22598617062894203619648023806 
             809643832836096000000000000 
              0000000000000000000000000 
               00000000000000000000000 
                000000000000000000000 
                 0000000000000000000 
                  00000000000000000
Questo è il fattoriale di un particolare numero intero N. È composto da 1073 cifre ed è stato ottenuto con R in pochi secondi. Chi nei primi decenni del XX secolo avesse predetto che pochi anni dopo (per la prima volta nel 1967) si sarebbe stati in grado di scrivere cifra per cifra un tale fattoriale sarebbe stato deriso.
Le cifre di questo fattoriale hanno la caratteristica di poter essere disposte in un esagono con lati formati da 17 cifre ciascuno.  Modificando opportunamente il file allegato, trovando l'"N" giusto, prova ad ottenere la figura precedente.

Quanto è presente nel file allegato:
Generazione di figure simili è descritta qui. Vedi.

n = ...; y = 0;z = 1;j = 1; while(j<=n){y = add(y,1); z = pro(z,y); j=j+1}
nchar(z)
# ...
n=1;k=16;h=17; { while(n<nchar(z)/2) {cat(char(" ",h),substr(z,n,n+k),"\n"); k=k+2;n=n+k-1;h=h-1};
   k=k-2; h=h+1;while(n<nchar(z)) {cat(char(" ",h+1),substr(z,n,n+k-2),"\n"); k=k-2;n=n+k+1;h=h+1} }
                  17108972589718074 
                 1439528307936299026 
                080765545554532458183 
               43255130543516432376912 
              4663791911119657860822050 
             367340495642348613717749611 
            38104459104482535212494659899 
           5225079402598873366451131040234 
          240130493689852679573590918519290 
         66647636392705738600295487428650940 
        0535103538524596394743595531728001643 
       083783948745781956212836911156587085000 
      40781396853030778257813849856692950471963 
     5089328018573725755534194119396813233357487 
    709737509271413007324171020350516977549843435 
   61187933295519151457453789138048055187827977590 
  7750007855795139817496078270462761613125177420579 
   97170554688538703689036095806399241086011592997 
    020790226888203087101533653915806041722653430 
     0377642434651424325601245917031000886439794 
      86942002854170097571338930915447098888372 
       333024657251637441276280296188483408232 
        2723195014038951851520634322622612616 
         12431271509190879459978732133255390 
          601413833379281814639023615443036 
           2338368861798856260050552801204 
            22598617062894203619648023806 
             809643832836096000000000000 
              0000000000000000000000000 
               00000000000000000000000 
                000000000000000000000 
                 0000000000000000000 
                  00000000000000000

Dal testo del problema si capisce che nchar(z) deve essere 1073.  Possiamo fare le prove senza stampare la figura, controllando solo questo valore:

n=100; y=0; z=1; j=1; while(j<=n){y = add(y,1); z = pro(z,y); j=j+1}; nchar(z)
# 158
n=200; y=0; z=1; j=1; while(j<=n){y = add(y,1); z = pro(z,y); j=j+1}; nchar(z)
# 375
n=300; y=0; z=1; j=1; while(j<=n){y = add(y,1); z = pro(z,y); j=j+1}; nchar(z)
# 615
n=400; y=0; z=1; j=1; while(j<=n){y = add(y,1); z = pro(z,y); j=j+1}; nchar(z)
# 869
n=450; y=0; z=1; j=1; while(j<=n){y = add(y,1); z = pro(z,y); j=j+1}; nchar(z)
# 1001
n=470; y=0; z=1; j=1; while(j<=n){y = add(y,1); z = pro(z,y); j=j+1}; nchar(z)
# 1054
n=475; y=0; z=1; j=1; while(j<=n){y = add(y,1); z = pro(z,y); j=j+1}; nchar(z)
# 1067
n=477; y=0; z=1; j=1; while(j<=n){y = add(y,1); z = pro(z,y); j=j+1}; nchar(z)
# 1073  OK
n=1;k=16;h=17; {while(n<nchar(z)/2) {cat(char(" ",h),substr(z,n,n+k),"\n"); k=k+2;n=n+k-1;h=h-1};
k=k-2; h=h+1;while(n<nchar(z)) {cat(char(" ",h+1),substr(z,n,n+k-2),"\n"); k=k-2;n=n+k+1;h=h+1}}
 
# Ottengo la figura richiesta!