Elementary Number Theory Algorithms

In this course we present some algorithms for primality testing, factoring integers and solving the discrete logarithm problem, based on elementary number theory.
References:
Prerequisites: An introductory course in algebra: basic properties of finite abelian groups, calculus modulo n.