PTA上的问题,求求了

读入3个整数A和B和C(设用户输入保证10<=A<B<C<=50)。如果C是A和B的公倍数,则输出闭区间[A,C]范围内的所有素数并求平均数。如果C不是A和B的公倍数,则将B的各位数字逆序输出。

仅供参考!谢谢!

img

img

img

#include <stdio.h>
#define F !(C > B && B > A && A >= 10 && C <= 50)

int isp(int n)
{
    for (int i = 2; i < n / 2; i++)
    {
        if (n % i == 0)
        {
            return 0;
        }
    }
    return 1;
}

int main(int argc, char *argv[])
{
    int A, B, C, sum = 0, n = 0;
    do
    {
        scanf("%d%d%d", &A, &B, &C);
        if (F)
            puts("输入超出范围!请重新输入!");
    } while (F);

    if (C % A == 0 && C % B == 0 && C > A && A >= 10 && B > A && C <= 50)
    {
        for (int i = A; i <= C; i++)
        {
            if (isp(i))
            {
                n++;
                sum += i;
                printf("[%d,%d]之间的素数%d\n", A, C, i);
            }
        }
        printf("\n平均数:%d\n", sum / n);
    }
    if ((C % A != 0 || C % B != 0) && C > A && A >= 10 && B > A && C <= 50)
    {
        int tmp = B;
        printf("%d逆序输出为:", B);
        while (tmp)
        {
            printf("%d", tmp % 10);
            tmp /= 10;
        }
    }
    puts("");

    return 0;
}