Позвольте мне начать с того, что я начинающий. Я пытаюсь определить функцию, которая вычисляет / идентифицирует наибольшее простое число ниже входного значения. Тем не менее, мой нынешний подход имеет недостатки.
Я пытался реализовать вложенный цикл for. Генерация чисел от одного под входом до 1, после чего каждый номер проходит через второй цикл, чтобы определить, является ли оно простым. Если это простое число (если count == 2), функция должна возвращать число, сгенерированное первым циклом (n)
Мне разрешено предполагать, что входное значение будет положительным целым числомбольше 2.
int prime(int maximum)
{
int i, j, count = 0, n;
for (i = 1; i < maximum; i++) {
n = maximum - i; /* generating number below input value*/
for (j = 1; j <= maximum; j++) {
if (n % j == 0) { /* testing whether or not it is prime */
count++;
}
} if(count == 2) {
break;
}
}
return n;
}
Я ожидаю, что на входе 10 будет выводиться 7, на входе 30 - 29, а на входе 100 - 97.
Однако, функция в настоящее время генерирует вывод 1 - последовательно.
Код не генерирует никаких сообщений об ошибках
примечание: я впервые использую эту платформу, мои самые искренние извинения, если формат моего вопроса неверен