Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- q = e div 2
- r = e mod 2
- then e = 2q+r, and r could be 0 or 1.
- If r=0:
- b^e = (b^q)^2
- If r=1:
- b^e = (b^q)^2 * b
- base case: b^0 = 1.
- q = 2/2 = 1
- r = 2mod2 = 0
- r=0, therefore 2^2 = 2^1^2
- pow :: Integer -> Integer -> Integer
- pow b e
- | e == 0 = 1
- | r == 0 = pow (pow b q) 2
- | r == 1 = pow (pow b q) 2 * b
- where
- (q, r) = divMod e 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement