Заполнить массив первыми n простых чисел - C (СИ)
Формулировка задачи:
Заполнить масив первыми n простых чисел
Вроде сделал, но надо еще что б делитель увеличивался только до половины проверяемого числа. Не знаю куда приписать (i<num/2)
#include <stdio.h> #include <math.h> #define N 50 int main() { int i, num = 5, k = 2, mass[N]; mass[0] = {2}; mass[1] = {3}; for (i = 3; k < N; i+=2) { if (i >= num ) { mass[k] = num; i = 3; k++; num+=2; } if (num%i == 0){ i = 5; num += 2; } } for (i = 0; i < N; i++) printf("%d \t", mass[i]); return 0; }
Решение задачи: «Заполнить массив первыми n простых чисел»
textual
Листинг программы
for(k=2; k<N; ) { flag = 1; for(j=1; j<k; j++) { if (mass[j]*mass[j] > num) break; if (num%mass[j]) { flag=0; break; } } if (flag) mass[k++] = num; num += 2; }
Объяснение кода листинга программы
В данном коде задача состоит в заполнении массива первыми n простыми числами.
- Переменная
k
инициализируется значением 2, так как первое простое число равно 2. - Переменная
flag
инициализируется значением 1, так как пока предполагается, что текущее числоnum
является простым. - Переменная
j
инициализируется значением 1, так как пока предполагается, что текущее числоnum
является простым. - Переменная
mass
инициализируется массивом длинойN
(количество чисел, которые мы хотим проверить на простоту). - Переменная
num
инициализируется значением 3, так как это следующее число после 2. - Цикл
for
начинается, который будет выполняться до тех пор, покаk
меньшеN
. - Внутри цикла
for
начинается другой циклfor
, который проверяет, является ли числоnum
простым. - Если
num
делится на любое число из массиваmass
без остатка, то числоnum
не является простым, поэтому переменнойflag
присваивается значение 0 и циклfor
прерывается. - Если после проверки всех чисел из массива
mass
переменнаяflag
все еще равна 1, то числоnum
является простым и добавляется в массивmass
под индексомk
. - Переменная
k
увеличивается на 1. - Переменная
num
увеличивается на 2, так как это следующее число после 3. - Цикл
for
повторяется до тех пор, покаk
меньшеN
. Таким образом, данный код заполняет массивmass
первыми n простыми числами.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д