We start with a review of congruences and congruence classes, Euclid's algorithm, gcd, lcm, Euler's function, Euler-Fermat theorem, orderma, Chinese remainder theorem.
Then Pythagorean triples, polynomial congruences, primitive roots, binomial conguences, pseudoprimes and strong pseudoprimes and simple primality tests and the Shanks Giant step/Baby step and Pohlig-Helman solutions of the discrete logarithm problem.
Then we study quadratic residues and non-residues (mod p), the Legendre and Jacobi symbols, Euler's criterion, the quadratic reciprocity theorem and some consequences.
Calculating the integer part of a1/m, Thue's theorem on small solutions of ax y (mod b), Serret's algorithm for p=x2+y2, Tonelli's √a (mod p) algorithm.
Finally, we turn to more technical topics such as continued fractions, Pell's equation, p-adic numbers.
Time does not permit us to investigate further interesting topics such as quadratic fields, lattices in n, Minkowski's convex body theorems, the LLL algorithm, Dirichlet characters, Gaussian sums, Pólya-Vinogradov inequality, elliptic curves and the congruent number problem and the distribution of primes.
The subject contains many interesting algorithms. Students can experiment with an exact arithmetic computer program called CALC, written by the lecturer and which implements some of the algorithms met in the course. CALC can be downloaded from the WWW.
KRM 16th July 2019