Игорь Горохов
Просветленный
(21474)
3 месяца назад
Не думаю что проблема в return false. Ошибка указывает, что из функции is_prime нет однозначного выхода, из-за наличия условия "if (!k) return true" в самом конце функции.
Исправь это на "return !k" - и должно взлететь
P.s. А учитывая, что k - это int, а возвращаешь ты bool, то лучше "return k == 0" или что-то подходящее под логику функции, т.к. не особо вчитывался в алгоритм, иначе можно словить ошибку преобразования типов, если k будет больше одного (т.к. int в bool неявно может преобразоваться только в случае 0 - Ложь, 1 - Истина)
warning: control reaches end of non-void function [-Wreturn-type]
18 | }
| ^
в этом коде: