Не удается реализовать Решето Эратосфена - C (СИ)
Формулировка задачи:
задача: быстро найти простые числа. проблема в том, что в СИ разбираюсь плохо ( так что код может кому-то показаться наивным ). прошу найти ошибки в алгоритме
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
int main()
{
int L=2, N=30, A[305], j, x=0;
clock_t start,end;
start=clock();
// заполнение массива нулями
for ( L; L<=N; L++)
{
A[L]=0;
printf("%d\n",A[L]);
}
L=2;
// алгоритм решето Эратосфена
for ( L, x; j<=N; L++, x++)
{
if (A[L])
j=L*L+L*x;
A[j]=0;
}
L=2;
//вывод новых значений
for ( L; L<=N; L++)
printf("%d\n",A[L]);
end=clock();
printf(" %6.3f sec\n",(double)(end-start)/(double)CLOCKS_PER_SEC);
getch();
return 0;
}Решение задачи: «Не удается реализовать Решето Эратосфена»
textual
Листинг программы
// заполнение массива единицами for ( L; L<=N; L++) A[L]=1; L=5;
Объяснение кода листинга программы
- В цикле от L до N (включительно) заполняется массив A единицами. Значение L равно 5, а N - это переменная, значение которой не определено (возможно, она должна быть инициализирована до этого участка кода).
- Значение L изменяется на 5.