Number theory has an important role in many branches of mathematics and in computer science, and even appears at times in physics and chemistry. Having a fundamental knowledge in this area will be fruitful for scientists in above mentioned areas. The book under review tries to provide such fundamental knowledge of number theory with its applications, mainly in computer science.

All chapters of the book have lots of boxed parts including bibliographies related to the mathematical subjects, which this makes the book very interesting for studying. These bibliographies are very useful, particularly for the historical background.

The first chapter includes fundamental topics like finite continued fractions and Fibonacci numbers, and basic theorems like Wilson's theorem, Fermat's theorem and the Chinese remainder theorem. The author introduces and proves these facts in terms of divisibility (without using the notion of congruence). The chapter also covers Lamé's theorem and Thue's theorem, which are seldom seen them in other texts on fundamental number theory. Following this process, in chapter two, which deals with congruences, Mollin studies some primality tests and gives an introduction in cryptography. The third chapter, on primitive roots, includes an introduction to the interesting topic of random number generation and discusses further topics in cryptography. In chapter four, on quadratic residues, Mollin also discusses algorithms for factoring.

Chapter five is about simple continued fractions and uses them to analyze rational approximations of irrational numbers. The author goes briefly back to factoring in this chapter again. Then he studies Pell’s equation, which is a Diophantine equation; a more precise study of these equations is the subject of last chapter.

The author tries to indicate some recent improvements briefly, in appendixes at the end of book. He focuses especially on the ABC conjecture, which has some consequences for Diophantine equations, and he studies the AKS algorithm, which is a primality test with polynomial running time. I think these are very useful for students to make them familiar with recent advances.

All of the chapters have good exercises, both numerical and theorical; and the reader will find the solutions of the odd-numbered ones at the end of book.

The book under review is a good text for undergraduates, suitable for a course in one semester or an extended course for two semesters, and it can be used in some courses in computer science as well.

Mehdi Hassani is a co-tutelle Ph.D. student in Mathematics in the Institute for Advanced Studies in Basic Science in Zanjan, Iran, and the Université de Bordeaux I, under supervision of the professors M.M. Shahshahani and J-M. Deshouillers.