#proto buscarprimos(_X_,_Y_) #include algoritmo pila de trabajo 50 decimales '0' números( dif 1, dif 2, dif 22, dif 24, dif 42, dif 642) cadenas( inicio1, inicio2, inicio22, inicio24, inicio42, inicio642,\ final1, final2, final22, final24, final42, final642 ) sw1=1, sw2=1, sw22=1, sw24=1, sw42=1, sw642=1 i=2 iterar i, es primo?, entonces { i2 = i, i4=i, i6=i ++i2; i2, es primo?, entonces{ ++dif 1 sw1, entonces{ #( string(i)),#(string(i2)), unir en 'inicio1' sw1=0 } #( string(i)),#(string(i2)), unir en 'final1' } ++i2; i2, es primo?, entonces{ ++dif 2 sw2, entonces{ #( string(i)),#(string(i2)), unir en 'inicio2' sw2=0 } #( string(i)),#(string(i2)), unir en 'final2' i2+=2; i2, es primo?, entonces{ ++dif 22 sw22, entonces{ #( string(i)),#(string(i2-2)),#(string(i2)) unir en 'inicio22' sw22=0 } #( string(i)),#(string(i2-2)),#(string(i2)) unir en 'final22' } i2+=2; i2, es primo?, entonces{ ++dif 24 sw24, entonces{ #( string(i)),#(string(i2-4)),#(string(i2)) unir en 'inicio24' sw24=0 } #( string(i)),#(string(i2-4)),#(string(i2)) unir en 'final24' } } i4+=4, i4, es primo?, entonces{ i4+=2, i4, es primo?, entonces{ ++dif 42 sw42, entonces{ #( string(i)),#(string(i4-2)),#(string(i4)) unir en 'inicio42' sw42=0 } #( string(i)),#(string(i4-2)),#(string(i4)) unir en 'final42' } } /* aquí, debido al espaciamiento, pueden haber primos entre 'i' e 'i+12', y debo chequear eso */ i6+=6, i6, es primo?, entonces{ i6+=4, i6, es primo?, entonces{ i6+=2, i6, es primo?, entonces{ si '#(buscar primos( (i+1),(i6-6) ) && buscar primos( (i6-5),i6-2))' sw642, entonces{ #( string(i)),#(string(i6-6)),#(string(i6-2)),#(string(i6)) unir en 'inicio642' sw642=0 } ++dif 642 fin si #( string(i)),#(string(i6-6)),#(string(i6-2)),#(string(i6)) unir en 'final642' } } } } ++i hasta que '#(i == 1000000)' imprimir( "Diff Sequence\tCount\t\tFirst\tLast\n") imprimir( "[ 1 ] \t", dif 1, "\t", #(lpad(" ",13,inicio1))," ",final1,\ "\n[ 2 ] \t", dif 2, "\t", #(lpad(" ",13,inicio2))," ",final2,\ "\n[ 2-2 ] \t", dif22, "\t", #(lpad(" ",13,inicio22))," ",final22,\ "\n[ 2-4 ] \t", dif 24,"\t", #(lpad(" ",13,inicio24))," ",final24,\ "\n[ 4-2 ] \t", dif 42,"\t", #(lpad(" ",13,inicio42))," ",final42,\ "\n[ 6-4-2 ]\t", dif 642,"\t", #(lpad(" ",13,inicio642))," ",final642,"\n") terminar subrutinas buscar primos(x,y) sw=1 iterar para( i=x, #(sw && i