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

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

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

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



Сообщение: 37
ссылка на сообщение  Отправлено: 09.03.22 04:43. Заголовок: Тема 25 задача 2853


#Рассматриваются целые числа, принадлежащих числовому отрезку [309829; 365874], которые представляют собой произведение двух различных простых делителей. Найдите такое из этих чисел, у которого два простых делителя меньше всего отличаются друг от друга. В ответе запишите простые делители этого числа в порядке возрастания.
Задача имеет два ответа
 
#создадим список простых чисел до 365875
p = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
for i in range(31, 365875):
j = 0
f = True
while p[ j] * p[ j] <= i and f:
if i % p[ j] == 0:
f = False
j += 1
if f:
p.append(i)

ans = []
d = 100 # разница между делителями
# найдём простое число ближайщее к корню нижней границы диапазона
j = 0
while p[ j] * p [j] < 309829:
j += 1
j -= 1
for x in range(309829, 365875):
i = j
while p[ i] * p[ i] < x:
if x % p[ i] == 0 and x // p[ i] in p:
if x // p[ i] - p[ i] < d:
d = x // p[ i] - p[ i]
ans = [(p[ i], x// p [ i])]
elif x // p[ i] - p[ i] == d:
ans.append((p[ i], x// p[ i]))
i += 1
for x in ans:
print(x)
#получаем два ответа:
#569 571
#599 601


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


Администратор




Сообщение: 3367
ссылка на сообщение  Отправлено: 09.03.22 06:46. Заголовок: Спасибо, уточнил усл..


Спасибо, уточнил условие.

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

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