On 09/11/2012 12:04, Rodrigo Mosconi wrote: >> >> if(limite_superior >= 1){ >> fprintf(stdout,"%d eh primo\n", 1); >> fflush(stdout); >> } > > Há um erro conceitual: 1 não é primo, nem composto > >> if(limite_superior >= 2){ >> fprintf(stdout,"%d eh primo\n", 2); >> fflush(stdout); >> } >> >> //Vamos criar os processos reponsáveis por encontrar os números >> for(i=0; i<processos; i++){ >> //Vamos fazer o fork do processo >> if(!fork()){ >> //Processo filho entra aqui >> for(j=3+2*i; j<=limite_superior; j+=passo){ >> if(eh_primo(j)){ >> fprintf(stdout,"%d eh primo\n", j); >> } >> } >> exit(0); > > como vc poderia usar o crivo de erastótenes para ignorar os múltiplos > de primos já obtidos.
É, mas a idéia é mostrar que para um problema grande eu posso usar múltiplos processos na solução, que será bem mais rápida em uma máquina com múltiplas CPUs. Se eu sair usando muitos atalhos não vai ficar tão óbvia a vantagem de múltiplos processos. O erro conceitual será corrigido na versão 2.0. ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd