home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lifeos2.zip / LIFE-1.02 / TESTS / LF / PYTH.LF < prev    next >
Text File  |  1996-06-04  |  486b  |  29 lines

  1.  
  2. decimal -> {0;1;2;3;4;5;6;7;8;9}.
  3.  
  4. to(A,N) :- between(1,A,N).
  5.  
  6. between(I,I,_).
  7. between(L,I,H) :- L<H, between(L+1,I,H).
  8.  
  9. gcd(I,0) -> I.
  10. gcd(I,J) -> cond(I>J,gcd(J,I mod J),gcd(I,J mod I)).
  11.  
  12. pyth(A,B,C) :-
  13.         A<B,
  14.         1=gcd(A,B),
  15.         C=sqrt(A*A+B*B),
  16.         C=int,
  17.         1=gcd(A,C),
  18.         1=gcd(B,C).
  19.  
  20. p(Low,High) :-
  21.         pyth(A,B,C),
  22.         between(Low,A,High), between(Low,B,High),
  23.         write("A=",A," B=",B," C=",C), nl,
  24.         fail.
  25. p.
  26.  
  27. p100 :- p(1,100).
  28.  
  29.