Before I retired, I would give my students the following challenge:
Write expressions for all the numbers from 1 to 100 using only the digits in the current year in order and using the operations +, -, x, ÷ (or / for divided by), ^ (raised to a power), sqrt (square root), ! (factorial), and int (or [] for greatest integer function), along with grouping symbols.

So, the first problem of the new year is to use only the digits 2, 0, 1, 7, (and in that order) along with the operations listed above to write expressions for all the numbers from 0 to 21.

Extra credit for those who can go past 21 (consecutively).

Click here for a worksheet

Click here for solutions to previous years

Some Solutions to the Problem:

0 = 2 * 0 * 1 * 7
1 = 2 * 0 + 1^7
2 = 2 + 0 * 17   or   2 + 0 * 1 * 7
3 = 20 - 17
4 = -2 + 0 - 1 + 7   or   2 + 0! + 1 ^ 7
5 = -2 + 0 * 1 + 7   or   int(sqrt(2 * (0 + 17)))
6 = 2 * 0 - 1 + 7   or   int(sqrt(2 * (0! + 17)))
7 = 2 * 0 * 1 + 7
8 = 2 * 0 + 1 + 7
9 = 2 + 0 * 1 + 7
10 = 2 + 0 + 1 + 7
11 = 2 + 0! + 1 + 7
12 = 20 - 1 - 7
13 = 20 - 1 * 7   or   20 * 1 - 7
14 = (2 + 0) * (1 * 7)   or   (2 + 0 * 1) * 7
15 = -2 + 0 + 17
16 = -(2^0) + 17   or   -2 + 0! + 17
17 = 2^0 * 17   or   2 * 0 + 17
18 = 2^0 + 17   or   2 - 0! + 17
19 = 2 + 0 + 17
20 = 20 * 1^7   or   2 + 0! + 17
21 = 20 + 1^7   or   (2 + 0 + 1) * 7
22 = 20 + [sqrt(sqrt(17))]
23 = 20 + 1 + [sqrt(7)]
24 = 20 + [sqrt(17)]
25 = int((2 + 0 + 1) * sqrt(sqrt(7!)))
26 = 20 - 1 + 7
27 = 20 * 1 + 7
28 = 20 + 1 + 7
29 = int(sqrt(2 + 0!) * 17)
30 = int((2 + 0! + 1)! * sqrt(sqrt(sqrt(7))))
31 = (2 + 0! + 1)! + 7
32 = 2 * (-0! + 17)
33 = int((2 + 0! + 1) * sqrt(sqrt(7!)))
34 = (2 + 0)(17)
35 = ((2 + 0!)! - 1) * 7
36 = 2 * (0! + 17)
37 = 20 + 17
38 = (20 - 1) * int(sqrt(7))
39 = int((2 + 0! + 1)! * sqrt(sqrt(7)))
40 = int(20 * sqrt(sqrt(17)))
41 = int(sqrt((2 + 0! + 1)! * sqrt(7!)))
42 = (2 + 0 + 1)! * 7
43 = int(sqrt(sqrt((2 + 0 + 1 + 7)!)))
44 = int(sqrt(2017))
45 = int(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(201!))))))))) * sqrt(sqrt(7!)))
46 = int(-(2 + 0! + 1)! + sqrt(7!))
47 = int(sqrt(2) + sqrt(sqrt(sqrt((-0! + 17)!))))
48 = (2 + 0!)! * (1 + 7)
49 = ((2 + 0!)! + 1) * 7
50 = int((2 + 0 + 1)! * sqrt(sqrt(7!)))
51 = (2 + 0!) * 17
52 = int(20 * sqrt(1 * 7))
53 = int(int(sqrt(sqrt(sqrt(sqrt((20 - 1)!))))) * sqrt(sqrt(sqrt(sqrt(int(sqrt(sqrt(int(sqrt(sqrt(7!)))!)))!)))))
54 = int(sqrt(sqrt(2)) * sqrt(sqrt(sqrt((-0! + 17)!))))
55 = int((20 + 1) * sqrt(7))
56 = int(20 * sqrt(1 + 7))
57 = int(int(sqrt(sqrt(sqrt(sqrt(20!))))) * sqrt(17))
58 = int(sqrt(sqrt(sqrt(sqrt(20!)))) * sqrt(17))
59 = -(2 + 0!)! + int(sqrt(sqrt(sqrt(17!))))
60 = 20 * (int(sqrt(sqrt((int(sqrt(sqrt((-1 + 7)!))))!))))
61 = -(int(sqrt(20))) + int(sqrt(sqrt(sqrt(17!))))
62 = -2 - 0! + int(sqrt(sqrt(sqrt(17!))))
63 = int((2 + 0! + 1)! * sqrt(7))
64 = int(-(2 + 0 + 1)! + sqrt(7!))
65 = 2 * 0 + int(sqrt(sqrt(sqrt(17!))))
66 = 2 - 0! + int(sqrt(sqrt(sqrt(17!))))
67 = 2 + 0 + int(sqrt(sqrt(sqrt(17!))))
68 = [sqrt(20)] * 17   or   2 + 0! + int(sqrt(sqrt(sqrt(17!))))
69 = int(2 * 0 - 1 + sqrt(7!))
70 = int(sqrt(2 * 0 * 1 + 7!))
71 = int(sqrt(2 * 0 + 1 + 7!))
72 = int(2 + 0 * 1 + sqrt(7!))
73 = int(2 + 0 + 1 + sqrt(7!))
74 = int(2 + 0! + 1 + sqrt(7!))
75 = int((2 + 0!)! - 1 + sqrt(7!))
76 = [sqrt(20) * 17]   or   int(sqrt(20) * 17)
77 = int((2 + 0!)! + 1 + sqrt(7!))
78 = int(sqrt(sqrt(sqrt(sqrt(sqrt((2 + 0! + 1)!))))) * sqrt(7!))
79 = int(sqrt(sqrt((2 + 0! + 1 + 7)!)))
80 = 20 * int(sqrt(17))
81 = int(sqrt(sqrt(sqrt(2 + 0 + 1))) * sqrt(7!))
82 = int(20 * sqrt(17))
83 = int((sqrt(sqrt(2)) + 0 * 1) * int(sqrt(7!)))
84 = int(sqrt(sqrt(sqrt(sqrt((int(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(201!))))))))))!))))) - int(sqrt(sqrt(7)))
85 = int(sqrt(sqrt(sqrt(sqrt((2 + 0! + 1)!)))) * int(sqrt(7!)))
86 = int(sqrt(sqrt(sqrt(sqrt((2 + 0! + 1)!)))) * sqrt(7!))
87 = int(sqrt(sqrt(sqrt(sqrt(sqrt((2 + 0 + 1)!!))))) * sqrt(7!))
88 = int(sqrt(sqrt(sqrt(sqrt((int(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(201!))))))))))!))))) +
        int(sqrt(sqrt(sqrt((int(sqrt(sqrt(7!))))!))))
89 = int(sqrt(sqrt(sqrt((2 + 0!)! + 1))) * int(sqrt(7!)))
90 = int(sqrt(sqrt(sqrt((2 + 0!)! + 1))) * sqrt(7!))
91 = int((sqrt(sqrt(sqrt(sqrt(20!)))) - 1) * 7)
92 = int(-2 + sqrt(sqrt(sqrt((0! + 17)!))))
93 = int(-sqrt(2) + sqrt(sqrt(sqrt((0! + 17)!))))
94 = int(int(sqrt(2)) * sqrt(sqrt(sqrt((0! +17)!))))
95 = int(sqrt(2) + sqrt(sqrt(sqrt((0! + 17)!))))
96 = int(2 + sqrt(sqrt(sqrt((0! + 17)!))))
97 = int(sqrt(sqrt(sqrt(20!))) / sqrt(sqrt(17)))
98 = int(sqrt(201)) * 7
99 = int(sqrt(201) * 7)
100 = int(sqrt(2 + 0) * 1 * sqrt(7!))


Some of these are difficult to follow in the form above.
Here are some of the more difficult answers using the square root sign:










Here is James Alarie's list:

0 = 2 * 0 * 1 * 7
1 = 2 * 0 + 1 ^ 7
2 = 2 + 0 * 1 * 7
3 = 20 - 17
4 = 2 + 0! + 1 ^ 7
5 = int(sqrt(2 * (0 + 17)))
6 = int(sqrt(2 * (0! + 17)))
7 = 2 * 0 * 1 + 7
8 = 2 * 0 + 1 + 7
9 = 2 + 0 * 1 + 7
10 = 2 + 0 + 1 + 7
11 = 2 + 0! + 1 + 7
12 = 20 - 1 - 7
13 = 20 * 1 - 7
14 = (2 + 0 * 1) * 7
15 = -2 + 0 + 17
16 = -2 + 0! + 17
17 = 2 * 0 + 17
18 = 2 - 0! + 17
19 = 2 + 0 + 17
20 = 2 + 0! + 17
21 = (2 + 0 + 1) * 7
22 = int(20 + sqrt(sqrt(17)))
23 = (2 + 0!)! + 17
24 = int(20 + sqrt(17))
25 = int((2 + 0 + 1) * sqrt(sqrt(7!)))
26 = 20 - 1 + 7
27 = 20 + 1 * 7
28 = 20 + 1 + 7
29 = int(sqrt(2 + 0!) * 17)
30 = int((2 + 0! + 1)! * sqrt(sqrt(sqrt(7))))
31 = (2 + 0! + 1)! + 7
32 = 2 * (-0! + 17)
33 = int((2 + 0! + 1) * sqrt(sqrt(7!)))
34 = 2 * (0 + 17)
35 = ((2 + 0!)! - 1) * 7
36 = 2 * (0! + 17)
37 = 20 + 17
38 = int((20 - 1) * sqrt(sqrt(17)))
39 = int((2 + 0! + 1)! * sqrt(sqrt(7)))
40 = int(20 * sqrt(sqrt(17)))
41 = int(sqrt((2 + 0! + 1)! * sqrt(7!)))
42 = (2 + 0 + 1)! * 7
43 = int(sqrt(sqrt((2 + 0 + 1 + 7)!)))
44 = int(sqrt(2017))
45 = int(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(sqrt(201!))))))))) * sqrt(sqrt(7!)))
46 = int(-(2 + 0! + 1)! + sqrt(7!))
47 = int(sqrt(2) + sqrt(sqrt(sqrt((-0! + 17)!))))
48 = (2 + 0!)! * (1 + 7)
49 = ((2 + 0!)! + 1) * 7
50 = int((2 + 0 + 1)! * sqrt(sqrt(7!)))
51 = (2 + 0!) * 17
52 = int(20 * sqrt(1 * 7)))
53 = int(int(sqrt(sqrt(sqrt(sqrt((20 - 1)!))))) * sqrt(sqrt(sqrt(sqrt(int(sqrt(sqrt(int(sqrt(sqrt(7!)))!)))!)))))
54 = int(sqrt(sqrt(2)) * sqrt(sqrt(sqrt((-0! + 17)!))))
55 = int((20 + 1) * sqrt(7))
56 = int(20 * sqrt(1 + 7))
57 = int(int(sqrt(sqrt(sqrt(sqrt(20!))))) * sqrt(17))
58 = int(sqrt(sqrt(sqrt(sqrt(20!)))) * sqrt(17))
59 = -(2 + 0!)! + int(sqrt(sqrt(sqrt(17!))))
60 = ?
61 = ?
62 = ?
63 = int((2 + 0! + 1)! * sqrt(7))
64 = int(-(2 + 0 + 1)! + sqrt(7!))
65 = 2 * 0 + int(sqrt(sqrt(sqrt(17!))))
66 = 2 - 0! + int(sqrt(sqrt(sqrt(17!))))
67 = 2 + 0 + int(sqrt(sqrt(sqrt(17!))))
68 = 2 + 0! + int(sqrt(sqrt(sqrt(17!))))
69 = int(2 * 0 - 1 + sqrt(7!))
70 = int(sqrt(2 * 0 * 1 + 7!))
71 = int(sqrt(2 * 0 + 1 + 7!))
72 = int(2 + 0 * 1 + sqrt(7!))
73 = int(2 + 0 + 1 + sqrt(7!))
74 = int(2 + 0! + 1 + sqrt(7!))
75 = int((2 + 0!)! - 1 + sqrt(7!))
76 = int(sqrt(20) * 17)
77 = int((2 + 0!)! + 1 + sqrt(7!))
78 = int(sqrt(sqrt(sqrt(sqrt(sqrt((2 + 0! + 1)!))))) * sqrt(7!))
79 = int(sqrt(sqrt((2 + 0! + 1 + 7)!)))
80 = 20 * int(sqrt(17))
81 = int(sqrt(sqrt(sqrt(2 + 0 + 1))) * sqrt(7!))
82 = int(20 * sqrt(17))
83 = int((sqrt(sqrt(2)) + 0 * 1) * int(sqrt(7!)))
84 = ?
85 = int(sqrt(sqrt(sqrt(sqrt((2 + 0! + 1)!)))) * int(sqrt(7!)))
86 = int(sqrt(sqrt(sqrt(sqrt((2 + 0! + 1)!)))) * sqrt(7!))
87 = int(sqrt(sqrt(sqrt(sqrt(sqrt((2 + 0 + 1)!!))))) * sqrt(7!))
88 = ?
89 = int(sqrt(sqrt(sqrt((2 + 0!)! + 1))) * int(sqrt(7!)))
90 = int(sqrt(sqrt(sqrt((2 + 0!)! + 1))) * sqrt(7!))
91 = int((sqrt(sqrt(sqrt(sqrt(20!)))) - 1) * 7)
92 = int(-2 + sqrt(sqrt(sqrt((0! + 17)!))))
93 = int(-sqrt(2) + sqrt(sqrt(sqrt((0! + 17)!))))
94 = int(int(sqrt(2)) * sqrt(sqrt(sqrt((0! +17)!))))
95 = int(sqrt(2) + sqrt(sqrt(sqrt((0! + 17)!))))
96 = int(2 + sqrt(sqrt(sqrt((0! + 17)!))))
97 = int(sqrt(sqrt(sqrt(20!))) / sqrt(sqrt(17)))
98 = int(sqrt(201)) * 7
99 = int(sqrt(201) * 7)
100 = int(sqrt(2 + 0) * 1 * sqrt(7!))


Correctly solved by:

1. James Alarie ** Flint, Michigan

        ** Extra Credit!