Driver Based approach.
For the planet I have added a driver to its z rotation.
pi * frame / 40
where frame
is known to the driver namespace as the current frame. The rotation is 0 degrees at frame 0 and 360 degrees (2pi radians) at frame 80.
A satellite object and an orbit circle is added. A follow path constraint, with follow curve and fixed position.
The driver is added to the offset.
(frame / 40) % 1.0
At frame 0 and frame 40 will be at 0 and 1 offset (same position) respectively. The % is python modulus, ie the remainder when divided by one.
Ok so now have a planet that revolves once in 80 frames and a satellite that orbits every 40 frames.
To loop the animation, set 1 and 80 as start and end frames.