Advertisement
austinh115

Prolog-GCD.pl

Dec 12th, 2019
698
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 0.95 KB | None | 0 0
  1. :- set_prolog_flag(verbose, silent).
  2. :- initialization(main).
  3.  
  4. gcd(X, 0, X):- !.
  5. gcd(0, X, X):- !.
  6. gcd(X, Y, D):- X > Y, !, Z is X mod Y, gcd(Y, Z, D).
  7. gcd(X, Y, D):- Z is Y mod X, gcd(X, Z, D).
  8.  
  9. choose(1, Num1, Num2) :- commandline(Num1, Num2).
  10. choose(2, Num1, Num2) :- fileinput(Num1, Num2).
  11.  
  12. fileinput(Num1, Num2):-
  13.     open('ayaya.txt', read, Str),
  14.     read(Str, Num1),
  15.     read(Str, Num2),
  16.     close(Str).
  17.  
  18. commandline(Num1, Num2):-
  19.     write("Enter your first positive number: "),
  20.     read(Num1),
  21.     write("Enter your second positive number: "),
  22.     read(Num2).
  23.  
  24. main:-
  25.     write("How would you like to proceed?\n"),
  26.     write("\t1. Command Line Input\n"),
  27.     write("\t2. File Input\n\n"),
  28.     write("Enter your choice: "),
  29.     read(Choice),
  30.     choose(Choice, Num1, Num2),
  31.     gcd(Num1, Num2, D),
  32.     write("The gcd of "), write(Num1), write(" and "), write(Num2), write(" is "), write(D), write("."),
  33.     halt.
  34. main:-
  35.     halt(1).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement