Continuous Looping animation - Differing rotational speeds
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.  Related

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.