I really like some of the questions found on the Openmiddle.com website. It is a great resource for questions that really get students thinking. They are often formatted so that there is a very low threshold for entry to the problem but they allow for enrichment and extensions. I created the problem below for a professional development session for Math 10 teachers. Students in the Math 10 course are near the following outcome in the yearly plan: AN03 Students will be expected to demonstrate an understanding of powers with integral and rational exponents.

​​Fill in the boxes with whole numbers 1 through 6, using each number at most once, so that the value of the expression is as large (or as small) as possible.

Teachers at this session were pretty quick to identify the largest possible value of this expression. They found that ​(5/1)^6*(3)^(4/2) was the largest expression with a value of 140625. Next, I asked them to find the smallest possible value. This took them a bit longer and they had to try out more expressions before they identified the smallest value. They found (1/5)^6*(2)^(3/4) was the smallest expression with a value of just 0.00010763. An even harder challenge was to find the value closest to 1. The expression with the value closest to 1 is (4/6)^1*(2)^(3/5) with a value of approximately 1.01047.

Teachers hard at work solving the problem.

In order to verify that these were correct values, I wrote a short program in Python (see below) to check all of the 720 possible (6!) values. It was my personal Hour of Code activity. I`m just learning to use Python so my code could definitely be more efficient. If you can write some better code, let me know and I`ll post it here and give you credit.

ValuesList=[1.0,2.0,3.0,4.0,5.0,6.0]

largest = 0smallest = 10000

for i in ValuesList: for j in ValuesList: for k in ValuesList: for l in ValuesList: for m in ValuesList: for n in ValuesList: if i!=j and i!=k and i!=l and i!=m and i!=n and j!=k and j!=l and j!=m and j!=n and k!=l and k!=m and k!=n and l!=m and l!=n and m!=n: z=((i/j)**k)*(l**(m/n)) if z > largest: largest = z print "Largest",largest,i,j,k,l,m,n if z < smallest: smallest = z print "Smallest",smallest,i,j,k,l,m,n