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