Fundamentals of number theory