大一学生,遇到问题求解决

下图第四题,编了一段代码,如果单独给a赋值可以输出结果,但是写循环就不能正常出,求解决orz
代码:

#include 
int main()
{
    long long int a, b, sum = 0, n = 0, i = 0;   //2为白球,3为红球,5为黑球
    for (a = 1; a <= 31250; a++)
    {
        for (b = a; b % 2 == 0 && n < 4; i++, n++, b /= 2);
        for (n = 0; b % 3 == 0 && n < 3; i++, n++, b /= 3);
        for (; b % 5 == 0 && i < 7; i++, n++, b /= 5);
        if (i == 7)
        {
            sum++, b = a;
            for (; b % 3 == 0; b /= 3)
                printf("R ");
            for (; b % 5 == 0; b /= 5)
                printf("B ");
            for (; b % 2 == 0; b /= 2)
                printf("W ");
            printf("W\n");
        }
    }
    printf("%lld", sum);
}

img

img

img

有没有试过把这8个球放到数组里面取呢