#python
#python
Вопрос:
Определите приведенный ниже метод для возврата наименьшего множителя произвольного целого числа. Наименьший коэффициент — это наименьшее число, большее 1, которое будет равномерно разделено на параметр (который будет равен 2 или выше).И это мой код, я не знаю, почему он неверен.
def first_factor(n):
for num in range(2,n):
if n % num == 0 and sqrt(n):
return num
Комментарии:
1. разместите код здесь, а не в виде скриншота.
2. В чем именно проблема?
3. Я не знаю, почему неверно, не могли бы вы мне помочь, спасибо
4. @Xuan для вашего недавно удаленного вопроса вот начало repl.it/EhJz/1 🙂
Ответ №1:
Вы должны использовать квадратный корень из числа в range
, а не как одно из условий.
def first_factor(n):
for num in range(2, int(n**0.5) 1):
if n % num == 0:
return num
Комментарии:
1. Извините, этот код неверен, не могли бы вы мне помочь, спасибо.
2. @Xuan — Каким образом неверно? Для меня это работает нормально.
3. @Xuan — Без какого-либо описания того, что в этом неверно (неправильный результат? сообщения об ошибках?), Я не могу помочь.
Ответ №2:
Это всего лишь определение функции — вы должны вызвать ее и распечатать результат, чтобы увидеть его. Полный код может быть:
def first_factor(n):
for num in range(2, n 1):
if n % num == 0:
return num
print(first_factor(3))
Обратите внимание, что я полностью опустил квадратный корень, поскольку он бесполезен и не позволяет получить результат для простых чисел.