Applications of spectral graph theory to some classical problems in combinatorics and number theory