На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 2
ссылка на сообщение  Отправлено: 05.06.21 17:04. Заголовок: #25 (4120)


 def simpleDividers(n): 
answer = [] # пустой список
d = 2 # начальное значение проверяемого делителя
while d * d <= n: # проверяем делители до корня из n
if n % d == 0: # если остаток от деления = 0
answer.append(d) # то добавляем в ответ
n //= d # делим n на d
else:
d += 1 # проверяем следующий делитель
if n >1 : # если в итоге n > 1
answer.append(n) # добавляем в ответ ещё этот n
if n in answer: answer.clear
return answer # возвращаем
n = 650000
f = 0
k = 0
while k < 4:
f = int(sum(simpleDividers(n)) / len(simpleDividers(n)))
if f % 37 == 23:
k += 1
print (n, f)
n += 1

Ответ не сходится в последнем числе
650220 2169

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 1 [только новые]







Сообщение: 448
ссылка на сообщение  Отправлено: 05.06.21 20:24. Заголовок: Программы "завор..


Программы "заворачивайте" в тэг [ pre2 ]...[ /pre2 ], при этом сохраняются все отступы и применяется моноширинный шрифт.

Для 650220 функция возвращает [2, 2, 3, 5, 10837] (что, конечно, неверно)

Для функции поиска простых делителей без повторов лучше использовать множество, а не список.
 def simpleDividers(n): 
answer = set()
d = 2
while d * d <= n:
if n % d == 0:
answer.add(d)
n //= d
else:
d += 1
if n > 1:
answer.add(n)
return answer


Discussio mater veritas est Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 517
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет