Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Taxicab Numbers « Programming Praxis -- Google Interview Question (programmingpraxis.com)
3 points by srsamarthyam on Nov 12, 2012 | hide | past | favorite | 1 comment


A bit of logic programming in core.logic:

(defn cubo [a r] (fresh [a1] (fd a a a1) (fd a a1 r)))

(defn taxi-cab [n] (run* [q] (fresh [a ac b bc] (infd a b (interval 1 (int (java.lang.Math/cbrt n)) )) (infd ac bc (interval 0 n)) (cubo a ac) (cubo b bc) (+fd ac bc n) (== q [a b]))))

NOTE: FYI, could be made more efficient.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: