Q: What does 0^0 (zero raised to the zeroth power) equal? Why do mathematicians and high school teachers disagree?

Clever student:


I know!

x^{0} =  x^{1-1} = x^{1} x^{-1} = \frac{x}{x} = 1.

Now we just plug in x=0, and we see that zero to the zero is one!

Cleverer student:


No, you’re wrong! You’re not allowed to divide by zero, which you did in the last step. This is how to do it:

0^{x}0^{1+x-1}0^{1} \times 0^{x-1}0 \times 0^{x-1}0

which is true since anything times 0 is 0. That means that

0^{0} = 0.

Cleverest student :


That doesn’t work either, because if x=0 then

0^{x-1} is 0^{-1} = \frac{1}{0}

so your third step also involves dividing by zero which isn’t allowed! Instead, we can think about the function x^{x} and see what happens as x>0 gets small. We have:

\lim_{x \to 0^{+}} x^{x} = \lim_{x \to 0^{+}} \exp(\log(x^{x}))

= \lim_{x \to 0^{+}} \exp(x \log(x))

= \exp( \lim_{x \to 0^{+} } x \log(x) )

= \exp( \lim_{x \to 0^{+} } \frac{\log(x)}{ x^{-1} } )

= \exp( \lim_{x \to 0^{+} } \frac{ \frac{d}{dx} \log(x) }{ \frac{d}{dx} x^{-1} } )

= \exp( \lim_{x \to 0^{+} } \frac{x^{-1}}{- x^{-2}} )

= \exp( \lim_{x \to 0^{+} } -x )

= \exp( 0)

= 1

So, since  \lim_{x \to 0^{+}} x^{x} = 1, that means that 0^{0} = 1.

High School Teacher:


Showing that x^{x} approaches 1 as the positive value x gets arbitrarily close to zero does not prove that 0^{0} = 1. The variable x having a value close to zero is different than it having a value of exactly zero. It turns out that 0^{0} is undefined. 0^{0} does not have a value.

Calculus Teacher:


For all x>0, we have

0^{x} = 0.


\lim_{x \to 0^{+}} 0^{x} = 0

That is, as x gets arbitrarily close to 0 (but remains positive), 0^{x} stays at 0.

On the other hand, for real numbers y such that y \ne 0, we have that

y^{0} = 1.


\lim_{y \to 0} y^{0} = 1

That is, as y gets arbitrarily close to 0, y^{0} stays at 1.

Therefore, we see that the function f(x,y) = y^{x} has a discontinuity at the point (x,y) = (0,0). In particular, when we approach (0,0) along the line with x=0 we get

\lim_{y \to 0} f(0,y) = 1

but when we approach (0,0) along the line segment with y=0 and x>0 we get

\lim_{x \to 0^{+}} f(x,0) = 0.

Therefore, the value of \lim_{(x,y) \to (0,0)} y^{x} is going to depend on the direction that we take the limit. This means that there is no way to define 0^{0} that will make the function y^{x} continuous at the point (x,y) = (0,0).

Mathematician: Zero raised to the zero power is one. Why? Because mathematicians said so. No really, it’s true.


Let’s consider the problem of defining the function f(x,y) = y^x for positive integers y and x. There are a number of definitions that all give identical results. For example, one idea is to use for our definition:

y^x := 1 \times y \times y \cdots \times y

where the y is repeated x times. In that case, when x is one, the y is repeated just one time, so we get

y^{x} = 1 \times y.

However, this definition extends quite naturally from the positive integers to the non-negative integers, so that when x is zero, y is repeated zero times, giving

y^{0} = 1

which holds for any y. Hence, when y is zero, we have

0^0 = 1.

Look, we’ve just proved that 0^0 = 1! But this is only for one possible definition of y^x. What if we used another definition? For example, suppose that we decide to define y^x as

y^x := \lim_{z \to x^{+}} y^{z}.

In words, that means that the value of y^x is whatever y^z approaches as the real number z gets smaller and smaller approaching the value x arbitrarily closely.

[Clarification: a reader asked how it is possible that we can use y^z in our definition of y^x, which seems to be recursive. The reason it is okay is because we are working here only with z>0, and everyone agrees about what y^z equals in this case. Essentially, we are using the known cases to construct a function that has a value for the more difficult x=0 and y=0 case.]

Interestingly, using this definition, we would have

0^0 = \lim_{x \to 0^{+}} 0^{x} = \lim_{x \to 0^{+}} 0 = 0

Hence, we would find that 0^0 = 0 rather than 0^0 = 1. Granted, this definition we’ve just used feels rather unnatural, but it does agree with the common sense notion of what y^x means for all positive real numbers x and y, and it does preserve continuity of the function as we approach x=0 and y=0 along a certain line.

So which of these two definitions (if either of them) is right? What is 0^0 really? Well, for x>0 and y>0 we know what we mean by y^x. But when x=0 and y=0, the formula doesn’t have an obvious meaning. The value of y^x is going to depend on our preferred choice of definition for what we mean by that statement, and our intuition about what y^x means for positive values is not enough to conclude what it means for zero values.

But if this is the case, then how can mathematicians claim that 0^0=1? Well, merely because it is useful to do so. Some very important formulas become less elegant to write down if we instead use 0^0=0 or if we say that 0^0 is undefined. For example, consider the binomial theorem, which says that:

(a+b)^x = \sum_{k=0}^{\infty} \binom{x}{k} a^k b^{x-k}


where \binom{x}{k} means the binomial coefficients.

Now, setting a=0 on both sides and assuming b \ne 0 we get


= (0+b)^x = \sum_{k=0}^{\infty} \binom{x}{k} 0^k b^{x-k}

= \binom{x}{0} 0^0 b^{x} + \binom{x}{1} 0^1 b^{x-1} + \binom{x}{2} 0^2 b^{x-2} + \hdots

= \binom{x}{0} 0^0 b^{x}

= 0^0 b^{x}

where, I’ve used that 0^k = 0 for k>0, and that  \binom{x}{0} = 1. Now, it so happens that the right hand side has the magical factor 0^0. Hence, if we do not use 0^0 = 1 then the binomial theorem (as written) does not hold when a=0 because then b^x does not equal 0^0 b^{x}.

If mathematicians were to use 0^0 = 0, or to say that 0^0 is undefined, then the binomial theorem would continue to hold (in some form), though not as written above. In that case though the theorem would be more complicated because it would have to handle the special case of the term corresponding to k=0. We gain elegance and simplicity by using 0^0 = 1.

There are some further reasons why using 0^0 = 1 is preferable, but they boil down to that choice being more useful than the alternative choices, leading to simpler theorems, or feeling more “natural” to mathematicians. The choice is not “right”, it is merely nice.

This entry was posted in -- By the Mathematician, Math, Philosophical. Bookmark the permalink.

1,120 Responses to Q: What does 0^0 (zero raised to the zeroth power) equal? Why do mathematicians and high school teachers disagree?

  1. Ruvian says:

    Most of people are talking about limits and things…
    Let’s take it at the point.
    because any indeterminate number times 0 is 0. So 0/0 can be anything, like 0^0.

  2. John Patrick Mason says:

    you need something other than numbers


  3. Pingback: No power | The Weight of My Days

  4. betaneptune says:

    In response to Ruvian, who wrote at Oct 9, 6:41:

    “Most of people are talking about limits and things…
    Let’s take it at the point.
    because any indeterminate number times 0 is 0. So 0/0 can be anything, like 0^0.”

    All this means is that you can’t use the exponent laws to determine what 0^0 is. It doesn’t preclude using other methods, many of which have already been posted. Here’s a summary.

    0. Limits don’t matter. Consider the indeterminate form 1^oo.

    lim (h->0) (1+h)^(1/h) = e

    This doesn’t mean that 1^oo = e. (!)

    1. Empty product

    3^2 = 1*3*3
    3^1 = 1*3
    3^0 = 1
    3^-1 = 1/3

    0^2 = 1*0*0
    0^1 = 1*0
    0^0 = 1
    0^-1 = 1/0 = “undefined”

    So when we attempt to define 0^-1, we write, as above, 1/0. Not 7/0 or -3/0 — but 1/0. Why? Because any number to the zeroth power is 1, which is why we write a^-1 = a^(0-1) = a^0/a^1 = 1/a. So when we write 0^-1 = 1/0 we are assuming 0^0 = 1.

    2. Mapping

    y^x is the number of ways to map y objects to x objects. This gives 0^0 = 1.

    3. Series written using summation notation

    Every math book I’ve ever read that gives e^x in summation notation says that it is good for _all_ x:

    e^x = Sum(0->oo) x^n/n! = 1 + x + x^2/2 + . . .

    This can only be true for x = 0 if 0^0 = 1. So you have a choice. Either 0^0 = 1, or the summation notation version of power series, including e^x, is invalid for x = 0. There’s no way out of it! Do you really want to make an exception here for x = 0? I think not!

    And this is needed for other power series that start with 1, like cos x. And it’s makes the binomial theorem,

    (a+b)^n = Sum (k=0->n) (n k) * a^k * b^n-k

    work for the following cases

    A) a = 0
    B) b = 0
    C) n = 0 and a+b = 0.

    This greatly simplifies programming for series or sums that contain a term of the form x^0. It’s also elegant.

    And 0^0 = 1 works fine with the exponent laws.

    Bottom line: 0^0 = 1

    Alan E. Feldman

  5. jeremy says:

    0^0 = 0
    infinite root of( 0)=0
    because the number which is multiplied infinite times to get 0 is 0
    so infinite root of( 0)=0 can be written as
    0^(1÷infinite) can be written as 0^0
    0^0 is equal to infinite root of (0)
    so 0^0 is 0

  6. uneedcallme says:

    lim (h->?) ((2h+1)/2h)^(h) = ?

    lim (h->?) (2h/(2h+1))^(h) = ?

    what’s the scoop ? one does not , the other intangible


  7. Shokay says:

    This question has got me crazy…
    how can we bring the concept of limit of function into Indices, I know limit of function to be related to differential calculus.

    3^4 = 3*3*3*3= 81
    3^3 = 3*3*3= 27
    3^2 = 3*3 = 9
    3^1 = 3
    3^0 = undefined
    but 81 ÷ 3 = 27….27 ÷ 3 = 9…. 9 ÷ 3 = 3…. 3÷3 = 1…
    Therefore 3^ 0 = 1

    Can 0^0 be = 1 ?
    0^4 = 0
    0^3 = 0
    0^2 = 0
    0^1 = 0
    0^0 = Indeterminate

  8. Ruvian says:


    My comment telling 0^0 is indeterminate, I think, not proved what it is, but proved what it’s not.

    “All this means is that you can’t use the exponent laws to determine what 0^0 is.”

    It’s not what I meant to say. It means the exponential laws reveals that it’s indeterminate.

    I could try to prove that 0^0 is 0, as tried by jeremy.

    In fact, it can be, since 0^0=e^(ln(0^0))=e^(0*ln(0))=e^(0*-infinity), which is an indetermination and can lead to any result (including 1).

    I searched on the web to have more quotes to my post seem more “powerful” (lol) and I found the following:
    “It is commonly taught that any number to the zero power is 1, and zero to any power is 0. […] Well, it is undefined (since xy as a function of 2 variables is not continuous at the origin).”

    Finally, It’s not a good thing (because I’ve been thinking about the most common problems of undefined points and their derivatives) to a function have a point where its derivative is undefined, but the point is defined. You can say x^(1/3) is not differentiable at x=0 (but still there’s 0^(1/3)), but if you define x^(1/3) as a set of functions like [if x>=0 then x^(1/3), if x<0 then 0 (for the real part)] you could take the derivative of a part of the function. Then you achieve a defined point with a defined part derivative. The function itself just not have a defined derivative for x=0 because it's naturally composed by 2 functions being united at x=0.
    But x^y would not be this kind of case. x^y would be [1 if y goes faster to 0 than x, and 0 if x goes faster to 0 than y]. Plotting x^0 and 0^y will reveal that the first is always 1 and the other is always 0, except for x=0 and y=0. That's the point. It is a set composed by different functions that differs one from another, naturally. It doesn't have a common point. That's why you can't have even a part derivative at the point x=0 y=0.

    I understand that it seems to appear in the reality as equal to one, but, mathematically, it's anything. And I know that in infinite sums it's considered to be 1, but it's just a common sense. It's like to say to everyone that thing that grows and have wood and leaves is called a tree. So now everyone knows what a tree is. But still it doesn't mean that "tree" is its true name.

  9. uneedcallme says:

    (x)^(x)=sin(x*pi+sqrt2+?) :)

    approximation ineffective -> but it is the image and graph and equation


  10. Wadut Shaikh says:

    put a= 0
    put b=0

    using namespace std;

    int main()
    { float a,b,c;
    cout<<"enter the the value of a"<>a;
    cout<<"enter the the value of b"<>b;
    float x;

    for(int i=1; i<=b; i++)
    { x = x*a;
    cout<<"a^b:"<<" "<<x<<endl;
    return 0;

    i get 1…then i am shocked … i checked my calculator ..it give math error……how funny mathematics………..

  11. Carefree Mathematician says:

    @Wadut Shaikh
    There are many different algorithms that reach the same solutions for most common cases of a particular problem, but algorithms that USUALLY work as expected can reach unexpected results when certain cases are used, and those cases can be different between many different approaches to the exact same problem.

    For instance, while your algorithm works as expected for positive ‘a’ and positive integers ‘b’, and despite the fact that you declare your ‘a’ and ‘b’ variables as float type, which is a type that allows negatives and decimals, your algorithm returns an incorrect solution for:
    all non-integer ‘b’ except for a=0 or a=1
    all “b<0" except for a=1

    An algorithm that works for significantly more cases would use the limit definition of the natural logarithm and it's inverse function (stopped at an arbitrarily high number of trials, I.E. 10000) to solve "ln(a)", and then e^(ln(a)*b). Multiplication is safe in general, so as long as "ln(a)" solves, and so long as "e^x" is written correctly, then the solution a^b should be both real and correct. However, despite the fact that this algorithm works for most cases, it returns an incorrect/no solution for:

    Notice that these two completely different approaches (yours and mine) to the same problem return correct solutions for most cases as expected, but return incorrect solutions for completely different sets of cases. Specifically, in most of the cases mentioned where my algorithm fails to return a solution that DOES exist, yours succeeds, and vice versa. This is except for when they BOTH fail, when:
    “a<0" and integer "b<0", (but not when "a=-1" and 'b' is even)
    or "a=0" and "b<1"

    TLDR: Just because an algorithm returns many predictable solutions, does not mean that ALL its solutions are correct or predictable. Your calculator is evidently using a more sophisticated method, which is no surprise since it's likely being sold to millions.

    Tip: In C code, you can compress the lines "float x" and "x=1" into a single line, "float x=1".

  12. lawrence scott says:

    of course you knew the answers before I knew the results

  13. uneedcallme says:

    there is something strange in the square root 😉


  14. Rajat says:

    The proof for 0/0 (or 0^0) which I have read is:
    Let 0/0=x
    Thus x can be any number
    I extended it a bit as:
    0-0*x is 0/0(Dividend -Quotient*Divisor)

  15. Bill Cowhig says:

    I didn’t have time to read through all of the comments posted, but in your second starting point, the attempt to define 0^0 by first defining y^x := lim (z -> x+) y^z has in it what seems to me an error.

    It is the line which goes:

    0^0 = lim (x->0+) 0^x = lim(x->0+) 0 = 0

    It seems more natural to me to have that line say:

    0^0 = lim (x->0+) 0^x = lim(x->0+) 0^0 = 1

    I am perfectly happy defining 0^0 := 1 since any other positive number raised to the zeroth power is the number one (1). i.e., x^0 = 1, for all positive x (just haven’t thought through negative xes aspect), because I am taught that exponents, as you point out, are defined to represent multiplication of a number a number of times determined by the exponent number, as you said, x^1 = x, x^2 = x times x, x^3 = x times x times x, and so forth, which tells me that it is natural to think of x^0 = 1. I think you showed it as y^x = 1 times y times y times y. . . with y multiplied x times, so when the exponent reaches 0, there are zero ys to multiply against the 1. y^x = 1.

  16. Prototype says:

    25^1 still 25 so it’s proof with 0,00001 as ~0 seems correct while it close enought to 1

    Now take
    Seems it approaches 1, that means 0^0 can really be 1 :)

  17. Francisco says:

    0 with the 0 power is 0 because no matter you multiply 0 times 1 times 2 times 3 times 4 times 5 and so on it is 0.

  18. uneedcallme says:

    when the sinus is himself and his brother hyperbolic 😉


Leave a Reply

Your email address will not be published. Required fields are marked *