This is an introductory text to number theory (with chapters on congruences, quadratic residues, large primes, continuous fractions, Diophantine equations and cryptography) also covering some more advanced topics, e.g. elliptic curves and their applications, the prime number theorem, the Riemann hypothesis, the Dirichlet theorem on primes in arithmetic progressions and the connection of logic to number theory (including a sketch of the negative solution to Hilbert's tenth problem). The reader can find worked examples and programs written in Mathematica and Maple (the book gives tutorials to these languages in the appendices). Moreover, it contains more than 500 exercises with notes at the end of chapters and lots of historical facts. The book is certainly more than a standard introduction to number theory and it can be recommended to everyone looking for a firm foundation of the fundamentals of number theory.