This introductory text is designed for undergraduate courses in number theory, covering both elementary number theory and analytic number theory. The book emphasises computational aspects, including algorithms and their implementation in Python.
The book is divided into two parts. The first part, on elementary number theory, deals with concepts such as induction, divisibility, congruences, primitive roots, cryptography, and continued fractions. The second part is devoted to analytic number theory and includes chapters on Dirichlet’s theorem on primes in arithmetic progressions, the prime number theorem, smooth numbers, and the famous circle method of Hardy and Littlewood. The book contains many topics not often found in introductory textbooks, such as Aubry’s theorem, the Tonelli-Shanks algorithm, factorisation methods, continued fraction representations of e, and the irrationality of (3). Each chapter concludes with a summary and notes, as well as numerous exercises.
Assuming only basic calculus for the first part of the book, the second part assumes some knowledge of complex analysis. Familiarity with basic coding syntax will be helpful for the computational exercises.