Алгоритм нахождения простых чисел - 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
- Если число простое, его вывод на экран
- Выход из внутреннего цикла
- Выход из внешнего цикла
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д