Задание 25 // ЕГЭ по информатике 2024

Sdílet
Vložit
  • čas přidán 5. 08. 2024
  • Разбираемся с числовой матчастью и поиском делителей.
    ОТКРЫТЫЙ КУРС kompege.ru/course
    За мат, КАПС, политоту, флуд - перманентный бан.
    Связаться с автором: cabanovalexey
    Группа ВК ege_info_open
    Тренажёр КЕГЭ: kompege.ru
    --------------------------------------------------------------------------------------------
    Ссылки на каналы других годных преподавателей:
    Евгений Джобс
    / @evgenijjobs
    Информатик БУ
    / @infbu
    Alex Danov
    / alexdanov
    Андрей Рогов
    / devinf74
    Ботай каждый день, глупый дурачок
    / @toadharvard
    Таймкоды
    00:00 Приветствие
    02:10 Как искать делители числа
    31:05 Делители числа 1
    37:30 Делители числа 2
    44:40 Делители числа 3
    55:10 Делители числа 4
    01:00:40 Делители числа 5
    01:09:30 Как копировать ответы в станцию
    01:11:50 Делители числа 6
    01:16:35 Делители числа 7
    01:24:35 Фильтрация делителей 1
    01:33:40 Фильтрация делителей 2
    01:37:50 Фильтрация делителей 3
    01:44:00 Как определять простоту числа
    01:51:35 Простые числа 1
    01:55:15 Простые числа 2
    02:01:00 Простые числа 3
    02:06:45 Простые числа 4
    02:13:20 Основная теорема арифметики
    02:19:20 ОТА 1
    02:26:25 ОТА 2
    02:32:05 ОТА 3
    02:36:40 ОТА 4
    02:41:00 Окончание и напутствия

Komentáře • 121

  • @user-yn6ux7xg1m
    @user-yn6ux7xg1m Před 2 lety +133

    Алексей, ГИГАНТСКОЕ Вам СПАСИБО!!! Вы такой молодец! Все очень ясно, просто, понятно. Главное, только нужное, никакой лишней воды и дуратских имён переменных!!!
    Так держать!!! Смотрю многих. Вы явный ФАВОРИТ.

    • @Vorono4ka
      @Vorono4ka Před 3 měsíci

      а какие имена переменных дурацкие? если тут из одной буквы, то у кого-то из 0 букв? имена переменных наоборот лучше распространять максимально, чтобы можно было легко понять

  • @TGrod
    @TGrod Před rokem +18

    Первый стрим, во время которого начал тупить) ОТА определённо крутая вещь, но задачи с ней - это просто нечто) Надо больше их порешать. Спасибо за информацию!

  • @user-kw2fo4gl6z
    @user-kw2fo4gl6z Před 2 lety +32

    Алексей, БОЛЬШОЕ СПАСИБО за Ваш гигантский труд!

  • @user-lz6oj2nv5z
    @user-lz6oj2nv5z Před měsícem +4

    спидран делителей перед егэ

  • @zzzaharrr
    @zzzaharrr Před 2 lety +26

    Спасибо, это КРУТО!)

  • @dunkeshn
    @dunkeshn Před 2 lety +19

    Алексей, спасибо за прекрасное обьяснение. ЭТО БАЗА

  • @binplunddd
    @binplunddd Před měsícem

    Спасибо большое! С Вами результаты всё выше и выше!

  • @glagosha
    @glagosha Před měsícem +1

    Алексей, спасибо вам большое за разбор!! Разобрала за день до экзамена и на экзамене попалось 25 на делители и сумму, благодаря вам смогла решить

  • @pgn55555
    @pgn55555 Před 2 lety +1

    Алексей, спасибо большое! Наконец-то понял ОТА)))

  • @RrRr-oy7py
    @RrRr-oy7py Před rokem

    Крутой разбор, спасибо!

  • @Vorono4ka
    @Vorono4ka Před 3 měsíci +1

    ОТА это обалденно! Действительно интересная штука, особенно последняя задача

  • @vladislav6670
    @vladislav6670 Před rokem

    Спасибо, Алексей)

  • @orlovchik
    @orlovchik Před rokem +2

    ота сложна для понимания, так как наконец-то что-то интересное в егэ по инфе, но такой кайф, когда ее понял...

  • @swag4297
    @swag4297 Před rokem +1

    спасибо большооооое!!!!!

  • @nellaparrish9346
    @nellaparrish9346 Před 2 lety +2

    Спасибо!!!

  • @kev1n232
    @kev1n232 Před 4 měsíci

    Спасибо вам!

  • @user-zx7gk7ro3w
    @user-zx7gk7ro3w Před 2 lety +3

    Спасибо

  • @okayeg1647
    @okayeg1647 Před 2 lety +1

    Это основа, это база

  • @neuwugenia
    @neuwugenia Před 2 lety +2

    спасибо

  • @chartusss8503
    @chartusss8503 Před 2 lety +53

    на ОТА я немного поплыл, а так все круто :)

    • @thibo9191
      @thibo9191 Před rokem

      ота база

    • @dmitrydeff8364
      @dmitrydeff8364 Před 3 měsíci

      что такое ОТА?

    • @chartusss8503
      @chartusss8503 Před 3 měsíci

      @@dmitrydeff8364 основная теорема арифметики

    • @realMiska
      @realMiska Před 3 měsíci

      ​@@dmitrydeff8364 основная теорема арифметики

  • @blackraven3889
    @blackraven3889 Před rokem

    ЛУЧШИЙ!

  • @cozyroach
    @cozyroach Před 2 lety +21

    На ОТА кокнуло

  • @levelup6465
    @levelup6465 Před 2 měsíci

    1:43:09 А в задаче же сказано, что среди делителей есть число, оканчивающееся на 8 и тп. Но это же не обязательно все числа? Можете как-то поподробнее объяснить пожалуйста?

  • @selor2440
    @selor2440 Před rokem +1

    А можно проверить простоту чисел таким образом?:
    d = div(d)
    if len(d)==2 and 1 in d: (то есть у нас делители 1 и само число)
    Вернет тру или фолс или еще что-нибудь

  • @WellDone00
    @WellDone00 Před 2 lety +3

    спс

  • @cmetanka3555
    @cmetanka3555 Před rokem +5

    Алексей, ГИГАНТСКОЕ Вам СПАСИБО!!! Вы такой молодец! Все очень ясно, просто, понятно. Главное, только нужное, никакой лишней воды и дуратских имён переменных!!!
    Так держать!!! Смотрю многих. Вы явный ФАВОРИТ😄😁😆🤣😂🙂🙃😑😋😛😛😒😒🤑🤑🤑🤑😝

    • @sakamoto6014
      @sakamoto6014 Před rokem +3

      🤣🤣🤣🤣🤣🤣😅😅😅😅😅😅😅😅😛😛😛😛😛😛😪😪😪😪😪😪😍😍😍😍😍😍

    • @exu118
      @exu118 Před 6 měsíci

      🤭🤫🤧🤗😝😝🤭🥲😋😛😑😵‍💫🥴🥵😎🤕🤕🤒🤒😴😴😜🤪😜🤪

    • @krosh8982
      @krosh8982 Před 5 měsíci

      😌😜🤕🤗🤮😷@@sakamoto6014

  • @pollydva1872
    @pollydva1872 Před měsícem

    спидран делителей перед егээ, ееееееееее

  • @proshka8375
    @proshka8375 Před rokem +2

    По поводу нахождения простоты числа, можно же просто указать в условии предыдущей функции, что если длина строки d == 2, то это простое число?

    • @kompege
      @kompege  Před rokem +1

      Можно и так

  • @user-ur5jh2zb2f
    @user-ur5jh2zb2f Před 3 měsíci

    1:48:25 - Где лучше нарешивать ЕГЭ?

  • @prKKK
    @prKKK Před 2 měsíci +1

    Зашел сюда, потому что увидел в 1 дне 2024 года делители, вместо масок...

  • @blsskid
    @blsskid Před rokem +4

    Вот алгоритм поиска делителей быстрее
    def getDivs(N):
    factors = {1}
    maxP = int(N ** 0.5)
    p, inc = 2, 1
    while p 1:
    factors.update([f * N for f in factors])
    return sorted(factors)
    Тест скорости:
    from timeit import timeit
    N = 1010101 ** 2
    print(timeit(lambda: getDivs(N), number=100)) # 0.0017
    print(timeit(lambda: div(N), number=100)) # 8.3578283

    • @user-co2wj9kd6h
      @user-co2wj9kd6h Před 3 měsíci +1

      ужас

    • @Vorono4ka
      @Vorono4ka Před 3 měsíci

      интересный алгоритм, спасибо! но для экзамена конечно это чересчур

  • @date8453
    @date8453 Před rokem +2

    Сейчас в спешке изучаю последние задачи. Можете пожалуйста подсказать стоит ли сейчас учить ОТА? Дорешал до 19 задачи в домашке и поплыл конкретно. Вот теперь и думаю стоит ли столько времени сейчас тратить на ОТА

    • @kompege
      @kompege  Před rokem +3

      Я думаю нет

  • @user-xg3wh9zu1w
    @user-xg3wh9zu1w Před 2 lety +1

    2:05:00 можно же не проверять, что простых делителей три, если они в произведении дают число, то значит их в любом случае три, 1 же не простое, иначе бы не хватило слагаемых в произведении

    • @kompege
      @kompege  Před 2 lety +2

      2**2 * 3**2 * 5**2
      Простых делителей три но их произведение не равно числу.

  • @user-xg3wh9zu1w
    @user-xg3wh9zu1w Před 2 lety

    Почему в функции div мы получаем список делителей, у нас же множество было? Или это sorted возвращает список, даже если ему множество дать как аргумент?

    • @kompege
      @kompege  Před 2 lety

      sorted возвращает список.

  • @user-yo8yi8zo8h
    @user-yo8yi8zo8h Před 2 lety +1

    Алексей, подскажите, сколько по новой метрике дают за каждое задание первичных?

    • @kompege
      @kompege  Před 2 lety +2

      1-25 по 1 баллу; 26 и 27 по 2 балла

    • @kompege
      @kompege  Před 2 lety

      Не знаю и никто не знает )

  • @zxcursedfan6144
    @zxcursedfan6144 Před rokem

    41:11 а нельзя сделать просто if len(dev)==5: (то печатать, по сути же если чисел 5, то 1 и последнее это единица и само это число)?

    • @kompege
      @kompege  Před rokem

      Можно, но местами такое чревато

  • @sofiipochta
    @sofiipochta Před měsícem +1

    Спасибо большое

  • @user-tb4eo6hw5v
    @user-tb4eo6hw5v Před rokem

    Здравствуйте! Почему на 2:28:52 приравниваем число всех делителей к трём, если кроме этих четных делителей есть ещё единица? она не входит в число всех делителей? Просто на 2:21:37 вы учитываете кроме нетривиальных делителей еще единицу и само число, а здесь - нет

    • @clashersupercelov2697
      @clashersupercelov2697 Před rokem +4

      Это фигня.. Я вот не вдупляю как он ловко заменяет (a1+1), на а1

  • @Asttttt
    @Asttttt Před 2 lety +1

    Здравствуйте, Алексей. Помогите пожалуйста разобраться с 178 заданием. Тайм код : 1:43:21
    От нас по условию требуют найти делители, среди которых есть число оканчивающееся на 8. То есть, среди делителей есть хотя бы одно число, которое оканчивается на 8. Но дальше, в решении, в генераторе, вы ставите такое условие (i%10==8), что отсеивает из списка делителей все, которые не оканчиваются на 8. Почему так? Разве из-за этого не теряются другие числа из этого списка? Нам же не говорят, что все числа должны оканчиваться на 8, а только то, что в списке есть такое число. Объясните пожалуйста, я похоже не понимаю условия.
    А так же ещё один момент в условии мне непонятен: ... при этом делитель не равен 8 и самому числу. Что значит самому числу? Я не понимаю эту запись.

    • @kompege
      @kompege  Před 2 lety

      1) Мы находим делители числа и фильтруем только те которые оканчиваются на 8. Смысл в том, что если у числа нет таких делителей, список будет пустой. А если они есть то список будет ненулевой длины. Именно такие числа мы ищем.
      2) Например число 500008 не считается, так как у него только один подходящий делитель само число )

    • @Asttttt
      @Asttttt Před 2 lety

      Понял, благодарю за объяснение.

  • @user-ed4mt5uv6w
    @user-ed4mt5uv6w Před rokem

    2:40:00 Почему мы увеличиваем степень тройки, вместо двойки? Если увеличить степень двойки число увеличится в 4 раза, а так в 9

    • @kompege
      @kompege  Před 11 měsíci

      Потому что тогда 512 делителей не получится

  • @ilyavdovets1104
    @ilyavdovets1104 Před 2 lety

    Какой доской вы пользуетесь?

  • @iabcesuu
    @iabcesuu Před 3 měsíci

    1:37:00 почему мы не учитываем, что в задаче написано, что для числа 36 учитываются только 12 и 18? получается же тогда ренж с двойки должен начинаться

    • @kompege
      @kompege  Před 3 měsíci

      1 и само число отфильтруются, так как они не двузначные

    • @iabcesuu
      @iabcesuu Před 3 měsíci

      @@kompege спасибо ❤️

  • @Nex1sS_1337
    @Nex1sS_1337 Před rokem

    for j in range(193136, 193223 + 1): print(j) if len(sorted({b for i in range(1, int(j**0.5)+1) for b in {i, j//i} if j%b==0})) == 6 else "" - первое задание в одну строчку

  • @sanery18
    @sanery18 Před 2 měsíci

    В этом году на ДВ было вот такое задание 1:37:50

  • @user-ij4vw8hk7l
    @user-ij4vw8hk7l Před 3 měsíci +1

    почему мы не прибавляем единицу к степени двойки на 2:27:45 ? в принципе понятно, что прибавляем к остальным на уровне, потому что "оно работает" и "ответ получается верным"(

    • @kompege
      @kompege  Před 3 měsíci

      +1 это вариант делителя с нулевой степенью простого числа. Мы считаем чётные делители, потому в них должна быть ненулевая степень двойки

    • @user-ij4vw8hk7l
      @user-ij4vw8hk7l Před 3 měsíci

      @@kompege поняла, спасибо!!

  • @user-ns9lg2bs1b
    @user-ns9lg2bs1b Před 2 lety

    Прощу прощения, а разве на 1:43 . В строчке из под def ...: for i in range( ... )
    " ... " здесь не должно быть 1, нам же не сказано, что мы срезаем первый и последний делитель)

    • @kompege
      @kompege  Před 2 lety

      1 не подходит под условие
      само число тоже

  • @whiskasio6492
    @whiskasio6492 Před 2 lety

    Алексей, хотелось бы узнать как и где научиттся решать примеры 25 задач с масками

    • @kompege
      @kompege  Před 2 lety

      В группе ВК есть видеоразборы задач

    • @whiskasio6492
      @whiskasio6492 Před 2 lety

      @@kompege о, благодарю

  • @fr4inxd
    @fr4inxd Před měsícem

    Спидран делителей перед ЕГЭ

  • @PIFAGORKRYT
    @PIFAGORKRYT Před 5 měsíci

    Здравствуйте, а почему второй по величине делитель - корень из x, у нас же делители: 2, 2p, 2p²
    время момента: 2:31:30

    • @kompege
      @kompege  Před 5 měsíci +1

      Нетривиальные делители 2, p, 2p, p**2
      Второй по величине это p

  • @hatee017
    @hatee017 Před rokem

    1:30:00 а можно ускорить процесс как-нибудь? просто в задаче отрезок миллион

    • @kompege
      @kompege  Před rokem

      В конце видео показано как ))

  • @GameChanger___
    @GameChanger___ Před 3 měsíci

    ОТА дается с трудом, но когда осознаешь её - получаешь интеллектуальный оргазм

  • @kivi12587
    @kivi12587 Před rokem

    1:26:30 Что сложного написать такой код??
    def div(x):
    d = set()
    for i in range(1,int(x**0.5)+1):
    if x%i==0:
    if i%2==0:
    d.add(i)
    if (x//i)%2==0:
    d.add(x//i)
    return sorted(d)

    • @Vorono4ka
      @Vorono4ka Před 3 měsíci

      ничего сложного нет, но зачем изменять этот код, если можно гораздо легче и быстрее изменить результат этого кода с помощью генератора? вы когда делаете что-то, не лезете в библиотеку, чтобы поменять код под ваш особый случай

    • @Vorono4ka
      @Vorono4ka Před 3 měsíci

      Алексей сказал хорошие слова по этому поводу на 1:54:37

  • @mr_spirit
    @mr_spirit Před rokem +2

    Вот вариант функции на поиск делителей реально в одну строчку и без set comprehension
    div = lambda n: sorted(i for x in range (2,int(n**0.5)+1) if n%x==0 for i in {x,n//x})

  • @-maverick-991
    @-maverick-991 Před 7 měsíci +1

    Стрим актуальный?

    • @kompege
      @kompege  Před 7 měsíci +1

      Актуальный )

  • @zh0skiyebaka
    @zh0skiyebaka Před 2 lety +2

    Алексей, почему в 146 задании вы называете корень из x вторым по величине делителем?

    • @kompege
      @kompege  Před 2 lety

      Имеем делители 1, 2, p, p**2, 2p**2
      Нетривиальные 2, p, p**2
      Второй по величине это p, как раз корень.

    • @user-qj4xq7vq3k
      @user-qj4xq7vq3k Před 2 lety +1

      @@kompege Может быть, я что-то не понял, но разве 2p не является тоже делителем?

  • @arctic8672
    @arctic8672 Před rokem

    почему в задаче 146 у вас второй нетривиальный делитель нечетный, хотя по условию все три должны быть четные)

    • @arctic8672
      @arctic8672 Před rokem

      А если у нас второй делитель четный,то получается что у нас уже 4 нетривиальных делителей, потому как у второго числа появится пара(делитель "4"),что за приколы, у задачи нет решения

  • @timoha-03
    @timoha-03 Před 9 měsíci

    2:22:45

  • @user-xg3wh9zu1w
    @user-xg3wh9zu1w Před 2 lety

    Зачем нам множество, если у нас и так по парам делители и мы идём до корня, то есть найдем просто все пары. Это для случая квадрата, когда у нас пара из двух одинаковых чисел?

  • @genichionifyol4741
    @genichionifyol4741 Před 2 lety

    Алексей, почему в последней задаче на простые числа, при поиске делителей мы не учитываем единицу? Если её учитывать, то ответ будет такой:
    450001 1
    450002 225001
    450004 225002
    450006 225003
    450007 26471
    450008 225004
    Я считаю, что это правильный ответ, так как у 450001 единица это наибольший делитель, не равный самому числу, который не является простым числом.

    • @kompege
      @kompege  Před 2 lety

      Единица это не простое число

    • @genichionifyol4741
      @genichionifyol4741 Před 2 lety

      @@kompege Так в условии и сказано, что наибольший делитель не должен являться простым числом, поэтому единица подходит.

    • @kompege
      @kompege  Před 2 lety

      @@genichionifyol4741 почитайте пример в этой задаче пожалуйста

  • @user-gy5kd8jx4f
    @user-gy5kd8jx4f Před rokem

    Здравствуйте, 1:58:21 не могу понять почему p(i), а не p(x)

    • @kompege
      @kompege  Před rokem

      x это число получается число из диапазона 650000+
      i это делитель числа x (потому что цикл for i in div(x) перебирает делители)

    • @user-gy5kd8jx4f
      @user-gy5kd8jx4f Před rokem

      @@kompege , получается мы оставляем i для i в делителях числа, если числа в этом делители простые? Я правильно понял?

    • @kompege
      @kompege  Před rokem

      @@user-gy5kd8jx4f создаётся список из делителей числа x, которые проходят проверку простоты (простые делители x короче)

    • @user-gy5kd8jx4f
      @user-gy5kd8jx4f Před rokem

      @@kompege спасибо большое,понял

  • @user-ie3rx3gh9m
    @user-ie3rx3gh9m Před 6 měsíci

    я прозрел

  • @h3nkyy
    @h3nkyy Před 2 lety

    День до игэ я учу ота

  • @krosh8982
    @krosh8982 Před 5 měsíci +5

    Тошнит от умников в чате, не дай бог таким же стать

  • @user-ix6ep9zn8s
    @user-ix6ep9zn8s Před 6 měsíci +1

    До егэ 4 месяца

  • @user-vy1ts9pt6i
    @user-vy1ts9pt6i Před rokem

    У меня у одного комп не вывозит миллионные итерации в цикле?

  • @user-gh1sg8zg6d
    @user-gh1sg8zg6d Před rokem

    Алексей добрый вечер, остановился на Простых числах. И не очень понимаю зачем делать новую функцию. Ведь старая вполне справляется с простыми числами.def f(n):
    d = set()
    for i in range(2, int (n**0.5) + 1):
    if n % i == 0:
    d.add(i)
    d.add(n//i)
    return sorted(d)
    for i in range(4202865, 4202923 + 1):
    d = f(i)
    if not d:
    print(i)

    • @kompege
      @kompege  Před rokem

      можно и так иногда )