c语言求非平凡因子,如图

img


求区间内非平凡因子个数最多的数,若一样多,输出最小的数,若没有,则输出-1,如图


#include <stdio.h>

int main()
{
    int t, ii = 0, m, n, num[20], max = 0, k;

    scanf("%d", &t);
    while (ii < t)
    {
        scanf("%d%d", &m, &n);
        max = 0;
        for (int i = n; i >= m; i--)
        {
            k = 0;
            for (int j = 2; j < i; j++)
            {
                if (i % j == 0)
                    k++;
            }
            if (k >= max)
            {
                max = k;
                num[ii] = i;
            }
        }
        if (max == 0)
            num[ii] = -1;
        ii++;
    }
    for (int i = 0; i < t; i++)
    {
        printf("%d\n", num[i]);
    }
}