Hardy and Ramanujan