NCLK is free and small but incredibly useful calculator written in Java. It supports basic math operations ( + , - , * , / , ^ ), variables and can calculate gcd/lcm (greatest common divider / least common multiple).
Requires Java Runtime Environment. Get It Here.