Автор | Сообщение |
|
Отправлено: 10.11.20 13:54. Заголовок: Не сходиться ответ к задаче №25(117)
117) Рассматриваются целые числа, принадлежащих числовому отрезку [105673; 220784], которые представляют собой произведение трёх различных простых делителей. В ответе запишите количество таких чисел и максимальное из них. Может я неправильно понимаю задание. Нужно же найти все числа состоящие из 3-х простых делителей(чисел)?Например 220778=2*59*1871, но в ответ:13487 220777. Да и количество у меня программа выдаёт 23707. a=[] for i in range(2,50000): k=True for j in range(2,i//2+1): if i%j==0: k=False break if k==True: a.append(i) count=0 maximum=0 k=[] n=1 for i in range(105673,220784): for elem in a: if i%elem==0: k.append(elem) n=n*elem if len(k)==3: if n==i: count += 1 if i > maximum: maximum = i break k=[] n=1 print(count,maximum) Выдаёт 23707 220778
|
|
|
Новых ответов нет
[см. все]
|
|
|
| Администратор
|
Сообщение: 2125
|
|
Отправлено: 10.11.20 19:52. Заголовок: Вячеслав_Б пишет: Вы..
Вячеслав_Б пишет: Спасибо, вы правы. Ответы исправлены.
|
|
|
|
Отправлено: 15.11.20 15:34. Заголовок: Не сходится первый ответ к задаче 25_101
25_101. Среди целых чисел, принадлежащих числовому отрезку [125697;190234], найдите числа, которые представляют собой произведение двух различных простых делителей. Запишите в ответе количество таких чисел и максимальное их них. Возможно, я где-то ошибаюсь, но первый ответ (количество чисел) у меня другой: var d,kpd,count,maxx:integer; function prost(d:integer):Boolean; var j:integer; flag:boolean; begin j:=2; flag:=TRUE; While (j*j<=d) and flag do if d mod j=0 then flag:=FALSE else j:=j+1; prost:=flag end; BEGIN count:=0; for var n:=125697 to 190234 do begin if n mod 1000=0 then write('.'); kpd:=0; d:=2; {kpd - кол. простых делителей числа n} while d<=(n div 2) do {проверяем все возможные делители числа n} if (n mod d=0) and prost(d) {если d - простой делитель числа n} then begin kpd:=kpd+1; inc(d) end else inc(d); if kpd=2 then begin inc(count); maxx:=n end end; println(count, maxx) END. Программа выдает 19550 190231, ответ на сайте 14047 190231
|
|
|
|
| Администратор
|
Сообщение: 2131
|
|
Отправлено: 15.11.20 15:47. Заголовок: check8386 пишет: Про..
check8386 пишет: цитата: | Программа выдает 19550 190231, ответ на сайте 14047 190231 |
|
Вы учитываете все числа, которые имеют два простых делителя и сколько угодно непростых.
|
|
|
|
Отправлено: 10.02.21 13:14. Заголовок: Меня интересует эта ..
Меня интересует эта же 117 задача. 117) Рассматриваются целые числа, принадлежащих числовому отрезку [105673; 220784], которые представляют собой произведение трёх различных простых делителей. В ответе запишите количество таких чисел и максимальное из них. Здесь я записываю в массив k простые числа, на которые делится рассматриваемое из диапазона [105673; 220784] число. И как только в массиве становится больше 3 элементов, я ставлю break. Скажите, пожалуйста, правильно ли я делаю? Ответ выходит правильно, но в моем решении я сомневаюсь. a=[] for i in range(2,37000): k=True for j in range(2,i//2+1): if i%j==0: k=False break if k==True: a.append(i) count=0 maximum=0 for i in range(105673,220784): k=[] n=1 for elem in a: #берем каждый элемент из массива простых чисел("а") if i%elem==0: k.append(elem) n=n*elem if len(k)>3: break if len(k)==3: if n==i: count += 1 if i > maximum: maximum = i break print(count,maximum)
|
|
|
|
| Администратор
|
Сообщение: 2422
|
|
Отправлено: 10.02.21 15:23. Заголовок: Andreyka009 пишет: С..
Andreyka009 пишет: цитата: | Скажите, пожалуйста, правильно ли я делаю? Ответ выходит правильно, но в моем решении я сомневаюсь. |
|
Все правильно вы делаете.
|
|
|
|
Отправлено: 19.04.21 15:56. Заголовок: Andreyka009 пишет: ..
Andreyka009 пишет: А почему мы здесь проверяем простые делители до 37000,а не до максимального числа в последовательности iMax=220784?
|
|
|
|
Отправлено: 15.11.20 16:49. Заголовок: Спасибо! Программу и..
Спасибо! Программу исправила.
|
|
|
|
Отправлено: 14.04.21 18:35. Заголовок: Вячеслав_Б пишет: Н..
Вячеслав_Б пишет: цитата: | Нужно же найти все числа состоящие из 3-х простых делителей(чисел)? |
| Но в задаче же сказано «целые числа, принадлежащих числовому отрезку [105673; 220784], которые представляют собой произведение трёх различных простых делителей»поэтому,если я правильно понимаю,их может быть и больше скажем 5,главное чтобы произведение 3-х из них было равно числу из рассматриваемого диапазона,т.е. таким образом мы должны найти количество различных сочетаний из 3-x простых делителей ко всему списку и если хотя бы одна тройка простых чисел при перемножении нам подходит,то и число нам подходит?
|
|
|
|
| Администратор
|
Сообщение: 2701
|
|
Отправлено: 14.04.21 22:02. Заголовок: nikitadvu пишет: есл..
nikitadvu пишет: цитата: | если хотя бы одна тройка простых чисел при перемножении нам подходит,то и число нам подходит? |
|
Да, так. В почему сомнения?
|
|
|
|