我的这段代码提示Time Limit Exceeded,哪里还能简化?

我写个求美素数的代码,但提示Time Limit Exceeded,请问大家哪里还能优化?

#include <stdio.h>
int isPrime(int a)
{
    int i;
    if (a <= 1)
        return 0;
    if (a == 2)
        return 1;
    for (i = 2; i < a; i++)
    {
        if (a % i == 0)
            return 0;
    }
    return 1;
}
int cop(int L,int R)
{
    int x,sum,temp,flag1,flag2,count;
    count = 0;
     while(L<=R)
        {
            flag1 = isPrime(L);
            if (flag1 == 1)
            {
                sum = 0;
                int temp = L;
                while (temp != 0)
                {
                    sum += (temp % 10);
                    temp /= 10;
                }
                flag2 = isPrime(sum);
                if (flag2 == 1)
                {
                    count += 1;
                }
            }
            L++;
        }
        return count;
}
int main()
{
    int L, R, i, t, x, sum, flag1, flag2, count;
    scanf("%d", &t);
    for (i = 0; i < t; i++)
    {
        count = 0;
        scanf("%d %d", &L, &R);
       count = cop(L,R);
        printf("Case #%d: %d\n", i + 1, count);
    }
    return 0;
}