Taxicab Numbers « Programming Praxis -- Google Interview Question (programmingpraxis.com) 3 points by srsamarthyam 13y ago ↗ HN
[–] ankurdhama 13y ago ↗ 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.
1 comment
[ 0.29 ms ] story [ 5.9 ms ] thread(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.