No surprises here: Virat Kohli, the modern-day great, and arguably the greatest all-format batter, has recorded 73 international centuries so far, and is only behind Tendulkar.
Kohli took 348 innings to score 50 international tons for India. But Kohli’s effort - in terms of innings - is a better one than Amla's because he played a significant number of T20Is as well, where a batter doesn’t get as good an opportunity to score a century as in ODIs.