23 lines
		
	
	
		
			654 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			654 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| # -*- coding: utf-8 -*-
 | |
| 
 | |
| # 100 coins must sum to $5.00
 | |
| 
 | |
| from pyswip.prolog import Prolog
 | |
| 
 | |
| def main():
 | |
|     prolog = Prolog()
 | |
|     prolog.consult("coins.pl")
 | |
|     count = int(raw_input("How many coins (default: 100)? ") or 100)
 | |
|     total = int(raw_input("What should be the total (default: 500)? ") or 500)
 | |
|     for i, soln in enumerate(prolog.query("coins(S, %d, %d)." % (count,total))):
 | |
|         # [1,5,10,50,100]
 | |
|         S = zip(soln["S"], [1, 5, 10, 50, 100])
 | |
|         print i,
 | |
|         for c, v in S:
 | |
|             print "%dx%d" % (c,v),
 | |
|         print
 | |
|     list(prolog.query("coins(S, %d, %d)." % (count,total)))
 | |
|         
 | |
| if __name__ == "__main__":
 | |
|     main()
 |