public static void main(String[] args) {
        int[] mod = {0, 0, 1, 2, 1, 4, 5, 4, 1, 2, 9, 0, 5, 10, 11, 14, 9, 0, 11, 18, 9, 11, 11, 15, 17, 9, 23, 20, 25, 16, 29, 27, 25, 11, 17, 4, 29, 22, 37, 23, 9, 1, 11, 11, 33, 29, 15, 5, 41, 46};
        long t = lcm(2, 3);
        long result = 5;//a=2,3
        for (int i = 4; i <= 49; i++) {//从4开始
            while (result % i != mod[i]) {
                result += t;//加上前数的最小公倍数,保证之前的余数不变
            }
            t = lcm(t, i);
        }
        System.out.println(result);
    }
    //最大公约数
    public static long gcd(long a, long b) {
        if (b == 0)
            return a;
        return gcd(b, a % b);
    }
    //最小公倍数
    public static long lcm(long a, long b) {
        return (a * b) / gcd(a, b);
    }