Сформировать массив с первых n простых чисел натурального числового ряда - C (СИ)
Формулировка задачи:
сформировать массив с первых n простых чисел натурального числового ряда. простым считается число, у которого нет других делителей, кроме 1 и самого себя.
Решение задачи: «Сформировать массив с первых n простых чисел натурального числового ряда»
textual
Листинг программы
#include<stdio.h> #include<stdlib.h> int Prime(unsigned a, unsigned i) { return i*i <= a ? (a%i) && Prime(a, i + 1) : 1; } int main() { unsigned *a, n, i = 0, j; printf("n = "); scanf("%u", &n); a = (unsigned *)malloc(n * sizeof(*a)); a[i++] = 2; for(j = 3; i < n; ++j) if (Prime(j, 2)) a[i++] = j; for(i = 0; i < n; ++i) printf("%u ", a[i]); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream.h и stdlib.h
- Определение функции Prime(unsigned a, unsigned i), которая проверяет, является ли число a простым. Если число делится на i без остатка, то оно не является простым и функция возвращает 0. Если число не делится на i без остатка, то оно может быть простым и функция рекурсивно вызывает саму себя для числа i+1. Если число не делится ни на одно число от 2 до i, то оно является простым и функция возвращает 1.
- В функции main() создается массив a размером n, который будет содержать первые n простых чисел. Значение n считывается с помощью функции scanf().
- Выделяется память под массив a с помощью функции malloc().
- Первый элемент массива a инициализируется значением 2, так как 2 является первым простым числом.
- Далее в цикле от 3 до n-1 (так как 2 уже добавлено в массив) проверяются все числа на простоту с помощью функции Prime(). Если число является простым, оно добавляется в массив a.
- После заполнения массива a, все его элементы выводятся на экран с помощью цикла for и функции printf().
- В конце программы возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д