Like others have said, one reason is to make your code easier to read. Here is a concrete example:
Say I need to calculate the number of seconds in a year. I could do that ahead of time and just have:
int x = 31536000;
But since I’m bad at naming variables and writing comments, people reading my code have no idea what that variable means.
And now if I need that to be 2 years, or 10 years, I have to do that calculation all over again.
Instead, I could do this:
int x = 365 * 24 * 60 * 60;
Now it’s easier for people reading my code to see what that variable represents, and if they want to change it to 2 years, they can:
int x = 2 * 365 * 24 * 60 * 60;
This is a bit of a contrived example, but it gets at the “why” of your question.