Форум » Обработка целых чисел » Не сходиться ответ к задаче №25(117) » Ответить

Не сходиться ответ к задаче №25(117)

Вячеслав_Б: 117) Рассматриваются целые числа, принадлежащих числовому отрезку [105673; 220784], которые представляют собой произведение трёх различных простых делителей. В ответе запишите количество таких чисел и максимальное из них. Может я неправильно понимаю задание. Нужно же найти все числа состоящие из 3-х простых делителей(чисел)?Например 220778=2*59*1871, но в ответ:13487 220777. Да и количество у меня программа выдаёт 23707. [pre2] 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)[/pre2] Выдаёт 23707 220778

Ответов - 9

Поляков: Вячеслав_Б пишет: Выдаёт 23707 220778 Спасибо, вы правы. Ответы исправлены.

check8386: 25_101. Среди целых чисел, принадлежащих числовому отрезку [125697;190234], найдите числа, которые представляют собой произведение двух различных простых делителей. Запишите в ответе количество таких чисел и максимальное их них. Возможно, я где-то ошибаюсь, но первый ответ (количество чисел) у меня другой: [pre]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.[/pre] Программа выдает 19550 190231, ответ на сайте 14047 190231

Поляков: check8386 пишет: Программа выдает 19550 190231, ответ на сайте 14047 190231 Вы учитываете все числа, которые имеют два простых делителя и сколько угодно непростых.


Andreyka009: Меня интересует эта же 117 задача. 117) Рассматриваются целые числа, принадлежащих числовому отрезку [105673; 220784], которые представляют собой произведение трёх различных простых делителей. В ответе запишите количество таких чисел и максимальное из них. Здесь я записываю в массив k простые числа, на которые делится рассматриваемое из диапазона [105673; 220784] число. И как только в массиве становится больше 3 элементов, я ставлю break. Скажите, пожалуйста, правильно ли я делаю? Ответ выходит правильно, но в моем решении я сомневаюсь. [pre2] 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) [/pre2]

Поляков: Andreyka009 пишет: Скажите, пожалуйста, правильно ли я делаю? Ответ выходит правильно, но в моем решении я сомневаюсь. Все правильно вы делаете.

nikitadvu: Andreyka009 пишет: for i in range(2,37000): А почему мы здесь проверяем простые делители до 37000,а не до максимального числа в последовательности iMax=220784?

check8386: Спасибо! Программу исправила.

nikitadvu: Вячеслав_Б пишет: Нужно же найти все числа состоящие из 3-х простых делителей(чисел)? Но в задаче же сказано «целые числа, принадлежащих числовому отрезку [105673; 220784], которые представляют собой произведение трёх различных простых делителей»поэтому,если я правильно понимаю,их может быть и больше скажем 5,главное чтобы произведение 3-х из них было равно числу из рассматриваемого диапазона,т.е. таким образом мы должны найти количество различных сочетаний из 3-x простых делителей ко всему списку и если хотя бы одна тройка простых чисел при перемножении нам подходит,то и число нам подходит?

Поляков: nikitadvu пишет: если хотя бы одна тройка простых чисел при перемножении нам подходит,то и число нам подходит? Да, так. В почему сомнения?



полная версия страницы