This is one of the cases where I've simply got bored of solving a problem the conventional way and decided it could be a much better use of my time writing a program rather than pressing multiply on my calculator repeatedly.

Here's a simple python program to find the order of an element of a group modulo some number (the binary operation being multiplication):

#!/usr/bin/env python import sys def element_order_mul(n,g): r=g o=1 while r%n != 1: print "not",r r=r*g o=o+1 return o # calculates the element order under multiplication mod n. # takes: n, element n=int(sys.argv[1]) g=int(sys.argv[2]) o=element_order_mul(n,g) print g,"^",o,"is congruent to 1 mod",n

[simon@simon ~]$ ./order.py 9 4 not 4 not 16 4 ^ 3 is congruent to 1 mod 9