Это программа генератора простых чисел на SPOJ. Я сталкиваюсь с ужасной ошибкой «Превышен лимит времени». Как я могу преодолеть это? Это ссылка на проблему: - https://www.spoj.com/problems/PRIME1/
В чем может быть причина? Я все еще новичок, и я искал на net, и он говорит мне использовать некоторые алгоритмы, но сейчас я не знаю никаких алгоритмов.
#include <stdio.h>
void prime(int a,int b)
{
int y=0;
for (int i=a;i<=b;i++)
{
for (int j=2;j<i;j++)
{
int x=i%j;
if (x==0)
{
break;
}
else
{
y++;
}
}
if (y==i-2)
{
printf("%d\n",i);
}
y=0;
}
}
int main()
{
int test;
int arr1[11],arr2[11];
char space[11];
scanf("%d",&test);
if (test>10)
{
goto end;
}
for (int i=0;i<test;i++)
{
scanf("%d%c%d",&arr1[i],&space[i],&arr2[i]);
if (arr1[i]>=1 && arr1[i]<=arr2[i] && arr2[i]<=1000000000 && arr2[i]-arr1[i]<=100000 && space[i]==' ')
{
prime(arr1[i],arr2[i]);
printf("\n");
}
}
printf("\n");
end:
return 0;
}