-
Notifications
You must be signed in to change notification settings - Fork 76
Description
I noticed that there are some incorrect unit tests for ownPower
and digitSum
. For the former the last test is failing (i.e. ownPower(21, 12)
) because 21 ** 21
is larger than Number.MAX_SAFE_INTEGER
this already creates an overflow, if you don't use a BigInt
from the beginning final sum is obviously going to be bigger than Number.MAX_SAFE_INTEGER
, and for the latter something similar was happening, take for example the factorial of 42, this number is also going to be greater than Number.MAX_SAFE_INTEGER
using number
here is incorrect because it's going to produce an overflow.
>>> MAX_SAFE_INTEGER = 2 ** 53 - 1
>>> 21 ** 21 > MAX_SAFE_INTEGER
True
>>> import math
>>> math.factorial(42) > MAX_SAFE_INTEGER
True
Please refer to #33 for the following:
To prove these points I included a Python3 script (challenge.py) with implementations to those two functions, but with the difference that Python3 supports arbitrarily large numbers out of the box, if you run this script you'll see the correct values.