# Arup Guha
# 10/15/2025
# Looking at Discrete Log Patterns (or lack thereof)

# Prints out for each a=2,3,4,...,p-2
# The pattern pf a**1, a**2, a**3, ... mod p
def printTable(p):

    # a is the base.
    for a in range(2,p-1):

        # This is a to the 0 power.
        tmp = 1

        # Print out a to each power mod p.
        for i in range(p-1):

            # Print
            print(tmp, end=" ")

            # Update.
            tmp = (tmp*a)%p

        print()

# Try out some stuff to look for patterns!
printTable(29)
