#include #include #include #include #include #include #include #define MAX_PRIMER 5000 int main(int argc, char *argv[]) { if (argc < 3) { printf ("Usage Error: ./streamize IN OUT"); return 1; } int n_read=1; int infile; int outfile; int point=-1; int primers[MAX_PRIMER]; char buffer[10]; int number; int div_n; int actual=2; int primer=1; primers[0]=0; primers[1]=0; primers[2]=1; for (number=3;number %d\n",number,primers[number]); actual++; } primer=1; } infile=open(argv[1],O_RDONLY); outfile=open(argv[2],O_CREAT|O_WRONLY|O_TRUNC,00666); while (n_read==1){ do { point++; n_read=read(infile,&buffer[point],1); }while (buffer[point]!=0x0A&&point<10) ; if (n_read==1) { buffer[point]=0; //printf ("%d\n",atoi(buffer)); number=atoi(buffer); if (number < MAX_PRIMER && primers[number]!=0) { number=primers[number]; //Passo el número primer a ordinal number=(number&0xFF); // El redueixo a 1 byte write (outfile,&number,1); } else{ printf ("ERRROR %d\n",number); } // El numero maxim es 5000 2 bytes // // PASSAR ELS NUMEROS PRIMERS A ORDINALS 2-->1,3-->2,5-->3,... // number=(number%0xFF); // write (outfile,&number,1); //write (outfile,&number,1); for (point=0;point<10;point++) buffer[point]=0; point=-1; } } return 0; }