Алгоритм нахождения простых чисел - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, совсем недавно начал обучения Си и вроде все шло хорошо до того как мне попался один алгоритм который находит все простые числа от 0 до числа заданного пользователем. Вот весь код
Листинг программы
  1. #include<stdio.h>
  2. #include <math.h>
  3. int main (void)
  4. {
  5. int a;
  6. printf("Input range:");
  7. scanf("%d", &a);
  8. prime(a);
  9. return 0;
  10. }
  11. int prime(int limit)
  12. {
  13. int t, i , count=0, flag;
  14. if (limit<=0);
  15. else
  16. {
  17. for(t=2 ; t<=limit ; t++)
  18. {
  19. flag=1;
  20. for (i=2; i*i<=t ;i++)
  21. {
  22. if (t%i==0) { flag=0; break; }
  23. }
  24. if (flag)
  25. {
  26. printf("%d ", t);
  27. count++;
  28. }
  29. }
  30.  
  31. }
  32. return count;
  33. }
Собственно, хоть убей, не пойму по какому принципу работают последних два цикла . Буду благодарен если кто нибудь разъяснит в чем там заключается суть. Спасибо
и зачем ставить i ++ если по началу цикла она все ровно забрасывается до 2?

Решение задачи: «Алгоритм нахождения простых чисел»

textual
Листинг программы
  1. #include<stdio.h>
  2.  
  3. main()
  4. {
  5.     int InputNumber,count,flag,CountTwo;
  6.  
  7.         printf("Intup Number:");
  8.         scanf("%d",&InputNumber);
  9.  
  10.                 for (count=2;count<InputNumber;count++)
  11.                 {
  12.                     flag=1;
  13.                     for(CountTwo=2;CountTwo<count;CountTwo++)
  14.                     {
  15.                         if (count==CountTwo) continue;
  16.                         if (count%CountTwo==0) {flag=0; break;}
  17.                     }
  18.                     if(flag) printf("%d\n",count);                 
  19.                 }
  20. }

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

В этом коде используется алгоритм поиска простых чисел. Он начинается с ввода числа от пользователя, затем проверяет каждое число от 2 до введенного числа на простоту. Если число простое, оно выводится на экран. Вот список переменных и их значений:

  1. InputNumber - входное число от пользователя
  2. count - переменная для цикла
  3. flag - флаг для проверки простоты числа
  4. CountTwo - переменная для внутреннего цикла Вот список шагов алгоритма:
  5. Ввод входного числа от пользователя
  6. Инициализация переменных count, flag и CountTwo
  7. Начало цикла для всех чисел от 2 до входного числа
  8. Инициализация внутреннего цикла для проверки делителей числа
  9. Проверка делителей числа от 2 до count-1
  10. Если число простое, его вывод на экран
  11. Выход из внутреннего цикла
  12. Выход из внешнего цикла

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


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

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

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы