After what time interval do the closest approaches of Mercury to the Earth repeat? The sidereal period of Mercury's revolution is 88 days and the synodic period — 116d.
my solution, but in the question featured &quot;the greatest rapprochement.&quot; And this is no longer so easy. Because the orbit of Mercury is noticeably elongated and ... in turn, it experiences rotation around the Sun. The effect is called &quot;precession of the perihelion of the orbit of Mercury&quot;. We must take it into account. The closest approach of Mercury to Earth will be when it is at this point, and it, in turn, is on the Sun-Earth line.

The time of Mercury's revolution around the Sun is 88 days,
Earth around the Sun -365 days,
Let's say we are on Mercury and today there is an Earth opposition,
the next one will be when Mercury returns to its original place
(having made a circle in its orbit) it is 88 days, but these 88 days
the Earth does not stand still, it has shifted in its orbit by 88/365
by about a quarter =&gt; Mercury will have to &quot;catch up&quot; with the Earth
for 22 days, but during these 22 days the Earth will still shift in
orbit by 22/365 approximately one sixteenth =&gt; another +5 days. Total
88 days + 22 days + 5 days = 115 days
Answer: oppositions of the Earth for an observer with Mercury are
repeated with a frequency of 115 days

I found the answer 7.26 years but how do get it?
@Glorfindel's explanation is very clear. I wondered about how big of an effect &quot;everything else&quot; would have, but I couldn't figure out how to add an image to a comment. Here is a graph from 2018 to 2023 of the distance between Mercury and Earth. You can see every 3rd minimum is a bit deeper than the others just like Glorfindel said. The details of each local minimum change in a somewhat irregular way (about 10% of the closest distance variation), but the broad pattern fits the simple explanation well.

Here is python code to generate such a graph yourself for a different time period. It uses skyfield to access JPL's data on the planetary positions and matplotlib to graph it.
from skyfield.api import load
import numpy as np
import matplotlib.pyplot as plt

planets = load(&quot;de421.bsp&quot;)
ts = load.timescale()

times = ts.utc(2018,1,np.linspace(0,365*5,10000))

distances = (planets[&quot;Mercury&quot;] - planets[&quot;Earth&quot;]).at(times).distance()

plt.plot(times.utc_datetime(), distances.km);
plt.title(&quot;Distance from Mercury to Earth in km versus time&quot;);

plt.savefig(&quot;Mercury-Earth-2018-2023.png&quot;);
plt.close()