我写个求美素数的代码,但提示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;
}