import java.util.*;

public class Verifier
{
    public static final String EXAMPLE1_DATA = "example1.txt";
    public static final String EXAMPLE2_DATA = "example2.txt";

    public static final int EXAMPLE1_REPEAT_TIME = 2772;
    public static final long EXAMPLE2_REPEAT_TIME = 4686774924L;

    public Verifier (boolean debug)
    {
        _activator = null;
        _debug = debug;
    }

    public final boolean verify ()
    {
        return verifyExample1() || verifyExample2();
    }

    // we don't check all the data, just a sample.

    private final boolean verifyExample1 ()
    {
        boolean result = false;
        
        _activator = new MoonSystem(EXAMPLE1_DATA, _debug);

        long[] periods = _activator.periodicity();

        for (int i = 0; i < periods.length; i++)
            System.out.println("**got back "+periods[i]+" for axis "+i);

        return result;
    }

    private final boolean verifyExample2 ()
    {
        boolean result = false;
        
        _activator = new MoonSystem(EXAMPLE2_DATA, _debug);

        long[] periods = _activator.periodicity();

        for (int i = 0; i < periods.length; i++)
            System.out.println("**got back "+periods[i]+" for axis "+i);
        
        return result;
    }

    private MoonSystem _activator;
    private boolean _debug;
}
@@ -864,24 +864,141 @@
 axis %22+i);%0A%0A
+        long val = lcm(lcm(periods%5B0%5D, periods%5B1%5D), periods%5B2%5D);%0A%0A        System.out.println(%22**lcm %22+val);%0A        %0A
         retu
@@ -1372,32 +1372,382 @@
  result;%0A    %7D%0A%0A
+    public long lcm (long i, long y)%0A    %7B%0A        int n;%0A        int x;%0A        long s = 1;%0A        long t = 1;%0A%0A        for (n = 1;; n++)%0A        %7B%0A            s = i * n;%0A%0A            for (x = 1; t %3C s; x++) %0A            %7B%0A                t = y * x;%0A            %7D%0A%0A            if (s == t)%0A                break;%0A        %7D%0A%0A        return s;%0A    %7D%0A%0A
     private Moon

Update Verifier.java