[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [obm-l] Clausula PROLOG para numeros primos



> >DEVERIA Executar Assim:
> >?primo(9, 2).
> >no.
> >?primo(11, 2).
> >yes
Estes eram os resultados esperados, o que acontece é:
?primo(3, 2).
yes.
?primo(4, 2).
no.
?primo(5, 2).
yes.
?primo(6, 2).
no.
?primo(7, 2).
yes
?primo(8, 2).
no.
?primo(9, 2).
yes.

Parece que consegui determinar apenas se o número é
ímpar ou não!

O algoritmo PROLOG executa em árvore com unificação.
Resumindo, de acordo com sua dedução de as
ramificações serem verdadeiras!

Não tenho o compilador instalado na minha máquina aqui
no trabalho mas vou testar em casa e retorno depois!

Obrigado!


--- Qwert Smith <lord_qwert@hotmail.com> escreveu:

> >From: Demétrius <demas1976@yahoo.com.br>
> >
> >[...]
> >Verificar se existe divisão exata de X por todos os
> >números maiores que 1 e menores que X. Se não
> existir
> >o número é primo! (OK??!?!??!!!?)
> >
> >Alguém teria uma alguma outra sujestão?!?!?
> >
> 
> Basta testar so os numeros ate sqrt(X).
> 
> >A minha cláusula PROLOG meia boca é:
> >
> >% Entrada de um dado número X e o divisor de
> >% verificação par N = 2
> >primo(X, N):- N < X, A is (X mod N), A\=0, N1 is
> N+1,
> >primo(X, N1).
> >
> >DEVERIA Executar Assim:
> >?primo(9, 2).
> >no.
> >?primo(11, 2).
> >yes.
> >
> >Mas algo está errado.... Estou testando o 9 pois
> ele é
> >impar é pequeno e não é primo!!
> >[...]
> 
> Vc nao diz oque te leva a creer que algo esta
> errado.
> Vc colocou o output esperado, mas nao colocou o que
> de fato retorna.
> Sera que ta retornando sempre no?
> 
> Eu nao sei proplog mas acho que o yes ou no da
> resposta depende de todas
> as ramificacoes serem ou nao verdadeiras
> 
> tente adicionar a seguinte clausula no comeco:
> primo(X,X):- true.
> 
> Assim o seu programa mesmo que ineficiente deve te
> dar a resposta esperada.
> 
> Faz:
> ?- trace
> ?- primo(9,2)
> ?-primo(11,2)
> ?- notrace
> 
> Se vc quer uma ajuda mais detalhada em debugging o
> seu programa
> 
> 
>
=========================================================================
> Instruções para entrar na lista, sair da lista e
> usar a lista em
> http://www.mat.puc-rio.br/~nicolau/olimp/obm-l.html
>
=========================================================================
> 



	
	
		
____________________________________________________
Yahoo! Mail, cada vez melhor: agora com 1GB de espaço grátis! http://mail.yahoo.com.br
=========================================================================
Instruções para entrar na lista, sair da lista e usar a lista em
http://www.mat.puc-rio.br/~nicolau/olimp/obm-l.html
=========================================================================