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

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

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

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





Сообщение: 1
ссылка на сообщение  Отправлено: 12.06.23 13:31. Заголовок: Задание 25 № 2611


Рассматриваются целые числа, принадлежащих числовому отрезку [236228; 305283], которые представляют собой произведение трёх различных простых делителей. В ответе запишите количество таких чисел и их среднее арифметическое (только целую часть числа).
Вот мое решение:

from itertools import * 
def prosto(t):
for l in range(2,int(t**0.5)+1):
if t % l == 0:
return False
return True
c = 0
m = 0
for i in range(236228, 305283+1):
a = []
for j in range(2,int(i**0.5)+1):
if i % j == 0 and prosto(j):
a.append(j)
if i//j != j and prosto(i//j):
a.append(i//j)
if len(a)<3:
continue
s = list(map(str,a))
perm = permutations(s,r=3)
ss = [list(map(int,j)) for j in perm]
for j in ss:
if j[0] * j[1] * j[2] == i:
c+=1
m+=i
break
print(c, m/c)

Мой ответ:
2840 270327
В ответе должно быть:
14216 270732

Что не так? Помогите, пожалуйста

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







Сообщение: 53
ссылка на сообщение  Отправлено: 12.06.23 21:23. Заголовок: from itertools impo..


 
from itertools import *
def g(n): #решето эратосфена для отбора простых чисел
l=[]; r=set()
for i in range(2,n+1):
if i not in r:
l.append(i)
r.update(range(i**2,n+1,i))
return l
res=g(50880)

de=lambda n: list(set(chain(*[(a,n//a) for a in range(1,ceil(n**0.5)) if n%a==0 ]))) #список делителей числа n
l=[]
for n in range(236228,305283+1):
sp=de(n)
if len(sp)==8 and len([c for c in sp if c in res])==3: (если раскладывается в произведение 3-х простых множителей, то число его делителей равно 8, есть формула числа делителей, связанная с разложением на простые множители и со степенями этих множителей)
l.append(n)
print(len(l), sum(l)//len(l))

ответ 14216 270732

Спасибо: 1 
ПрофильЦитата Ответить





Сообщение: 2
ссылка на сообщение  Отправлено: 13.06.23 17:11. Заголовок: Ж пишет: res=g(508..


Ж пишет:

 цитата:
res=g(50880)


Почему вы берете 50880?

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 3
ссылка на сообщение  Отправлено: 13.06.23 18:19. Заголовок: Ж пишет: есть форму..


Ж пишет:

 цитата:
есть формула числа делителей, связанная с разложением на простые множители и со степенями этих множителей


Можете, пожалуйста, написать эту формулу или сказать название.

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 55
ссылка на сообщение  Отправлено: 14.06.23 10:10. Заголовок: n=p1^k1 * p2^k2 * p..


n=p1^k1 * p2^k2 * p3^k3 * ...pm^km --> количество делителей = (k1+1)*(k2+1)*...(km+1)
Пример 72=2^3 * 3^2
72 делится на [1, 2, 3, 4, 6, 8, 9, 12, 18, 24, 36, 72]
количество делителей = (3+1) * (2+1) = 12
50880 = 305283/2/3 (это оценка сверху 3-го простого делителя, чтобы список простых был поменьше). Но это необязательно, можно написать res = g(305283) - считаться будет в 3 раза дольше (сейчас 20 с, иначе 60 с - терпимо, можно сделать оптимальней, но и минута - не проблема подождать)

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

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