https://repl.it/@IlyaSiganov/prime-numbers#main.c

Напишите функцию, которая возвращает максимальное простое число, меньшее числа n. Например, prime(20) == 19, prime(2020) == 2017.

Попробуйте придумать алгоритм, который эффективнее чем полный перебор.

#include "test.h"

// prime возвращает максимальное простое число, меньшее n.
// Например, prime(20) == 19, prime(2020) == 2017.
// Простое число - это число, у которого только два делителя - 1 и само число.
int prime(int n) {
  // Напиши меня!
  // Попробуйте придумать алгоритм, который эффективнее чем полный перебор.
  return n;
}

int main(void) {
  // Это тесты. НЕ УДАЛЯЙТЕ ИХ!
  // Преподаватель будет грустить, если вы удалите тесты T_T.
  // Тесты проверяют, что ваш код работает правильно.
  // Если задача решена неправильно,
  // то в консоли вы увидите ошибку и пояснение.
  // Сдавайте лабу, когда устраните все ошибки в тестах.
  // Если возникли трудности, то попросите преподавателя вам помочь ^_^.

  ASSERT_INT(5, ==, prime(6));
  ASSERT_INT(19, ==, prime(20));
  ASSERT_INT(2017, ==, prime(2027));
  ASSERT_INT(2221, ==, prime(2237));
  ASSERT_INT(3571, ==, prime(3572));
  return 0;
}