number theory exercises and solutions