int main(int argc, char **argv){ if(argc<6){ return 1; } start(); int i,j; for(i=0;i<5;i++){ printf("%d\t-\t", codifica(i,atoi(argv[i+1]))); // printf("%s: ",tipo[i]); for(j=0;j<10;j++){ printf("%d ",cod[i][j]); } printf("\n"); } printf("%d\t-\t", factoriza(atoi(argv[1])+(atoi(argv[2])*60)+(atoi(argv[3])*3600))); for(j=0;j<17;j++){ printf("%d ",tod[j]); } printf("\n\n"); stop(); }
int main(int argc, const char * argv[]) { int tuberia1[2]; int tuberia2[2]; pid_t pid; pipe(tuberia1); pipe(tuberia2); pid = fork(); if (pid == -1) { printf("Error al crear el proceso hijo"); exit(-1); } else if (pid == 0) { /* Hijo */ close(tuberia1[1]); int numero; read(tuberia1[0], &numero, sizeof(int)); close(tuberia2[0]); int resultado = factoriza(numero); write(tuberia2[1], &resultado, sizeof(int)); } else { /* Padre */ close(tuberia1[0]); int numero, resultado; printf("Dame un numero a factorizar\n"); scanf("%d", &numero); write(tuberia1[1], &numero, sizeof(int)); close(tuberia2[1]); read(tuberia2[0], &resultado, sizeof(int)); printf("El resultado es: %d\n", resultado); } return 0; }
int main() { int i, n, f; long m; genera_primos(3, 31607); /*genera sólo los numeros primos necesarios- para este problema */ scanf("%d", &n); for(i = 0; i < n; i++) { scanf("%ld", &m); do { /*factoriza m en factores primos y regresa*/ m++; /*la suma de ellos, si m es primo la fun -*/ f = factoriza(m); /*cion factoriza regresa 0, si m no sea un - smith number, intantamos con el numero m+1,- m+2, m+3, ... hasta encontrar uno */ } while(!f || (suma_digitos(m) != f)); printf("%ld\n", m); } return 0; }