Пример #1
0
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;
}
Пример #3
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;
}