Написать функцию, которая найдет следующее за заданным простое число - C (СИ)

Узнай цену своей работы

Формулировка задачи:

пожаааалуйста хелп сказали, что 2 функции здесь будет, 1- будет проверять простое ли число, а 2 - будет находить следующее число за ним..

Решение задачи: «Написать функцию, которая найдет следующее за заданным простое число»

textual
Листинг программы
#include <stdbool.h>
#include <stdio.h>
 
#define until(c) while(!(c))
 
bool prime(unsigned long x) {
    if ((x & 1) == 0) { return x == 2; }
    for (unsigned long i = 3; i * i <= x; i += 2) {
        if (x % i == 0) { return false; }
    }
    return true;
}
 
int main(void) {
    unsigned long n;
    while (scanf("%lu", &n) == 1 && n != 0) {
        do {
            n++;
        } until (prime(n));
        printf("%lu\n", n);
    }
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: и
  2. Объявление макроса until, который будет использоваться в коде для проверки условия и выполнения цикла до его истинности.
  3. Определение функции prime, которая проверяет, является ли число простым. Если число делится на 2, функция возвращает true только для числа 2. Затем происходит проверка делителей от 3 до корня из заданного числа (исключая число 2). Если делитель найден, функция возвращает false. Если делителей не найдено, функция возвращает true.
  4. В функции main объявляется переменная n для хранения введенного числа.
  5. В цикле while происходит считывание числа с помощью функции scanf и проверка на ненулевой ввод.
  6. Внутри цикла происходит увеличение числа n на единицу и проверка с помощью функции prime. Цикл выполняется до тех пор, пока функция prime не вернет true.
  7. После выполнения цикла происходит вывод числа n с помощью функции printf.
  8. В конце функции main возвращается 0, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы