Алгоритм нахождения простых чисел - C (СИ)
Формулировка задачи:
Здравствуйте, совсем недавно начал обучения Си и вроде все шло хорошо до того как мне попался один алгоритм который находит все простые числа от 0 до числа заданного пользователем. Вот весь код
Собственно, хоть убей, не пойму по какому принципу работают последних два цикла . Буду благодарен если кто нибудь разъяснит в чем там заключается суть. Спасибо
Листинг программы
- #include<stdio.h>
- #include <math.h>
- int main (void)
- {
- int a;
- printf("Input range:");
- scanf("%d", &a);
- prime(a);
- return 0;
- }
- int prime(int limit)
- {
- int t, i , count=0, flag;
- if (limit<=0);
- else
- {
- for(t=2 ; t<=limit ; t++)
- {
- flag=1;
- for (i=2; i*i<=t ;i++)
- {
- if (t%i==0) { flag=0; break; }
- }
- if (flag)
- {
- printf("%d ", t);
- count++;
- }
- }
- }
- return count;
- }
и зачем ставить i ++ если по началу цикла она все ровно забрасывается до 2?
Решение задачи: «Алгоритм нахождения простых чисел»
textual
Листинг программы
- #include<stdio.h>
- main()
- {
- int InputNumber,count,flag,CountTwo;
- printf("Intup Number:");
- scanf("%d",&InputNumber);
- for (count=2;count<InputNumber;count++)
- {
- flag=1;
- for(CountTwo=2;CountTwo<count;CountTwo++)
- {
- if (count==CountTwo) continue;
- if (count%CountTwo==0) {flag=0; break;}
- }
- if(flag) printf("%d\n",count);
- }
- }
Объяснение кода листинга программы
В этом коде используется алгоритм поиска простых чисел. Он начинается с ввода числа от пользователя, затем проверяет каждое число от 2 до введенного числа на простоту. Если число простое, оно выводится на экран. Вот список переменных и их значений:
- InputNumber - входное число от пользователя
- count - переменная для цикла
- flag - флаг для проверки простоты числа
- CountTwo - переменная для внутреннего цикла Вот список шагов алгоритма:
- Ввод входного числа от пользователя
- Инициализация переменных count, flag и CountTwo
- Начало цикла для всех чисел от 2 до входного числа
- Инициализация внутреннего цикла для проверки делителей числа
- Проверка делителей числа от 2 до count-1
- Если число простое, его вывод на экран
- Выход из внутреннего цикла
- Выход из внешнего цикла
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д