**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. [![enter image description here][1]][1]

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](https://blender.stackexchange.com/a/91511/15543)

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.



[<img src="https://blend-exchange.giantcowfilms.com/embedImage.png?bid=5246" />](https://blend-exchange.giantcowfilms.com/b/5246/)

  [1]: https://i.sstatic.net/tL0me.png