• + 0 comments

    This is far far more readable than prior solutions. I like it. SImilar to mine in c#

        static int getTotalX(int[] a, int[] b) 
    {
        var lcm = LCM(a);
        var gcf = GCF(b);
    
        var candidate = lcm;
        var count = 0;
        while (candidate<=gcf)
        {
            count += gcf % candidate ==0 ? 1 :0;
            candidate += lcm;
        }
        return count;
    }
    
    static int LCM(int []x) => x.Aggregate(lCM);
    static int GCF(int []x) => x.Aggregate(gCF);
    static int gCF(int a, int b) => b == 0 ? a : gCF(b, a % b);  
    static int lCM(int a, int b) => (a *b) / gCF(a, b);