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

Responder a