Не удается реализовать Решето Эратосфена - 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;

Объяснение кода листинга программы

  1. В цикле от L до N (включительно) заполняется массив A единицами. Значение L равно 5, а N - это переменная, значение которой не определено (возможно, она должна быть инициализирована до этого участка кода).
  2. Значение L изменяется на 5.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы