Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
[Вернуться к задаче]   1
  1  Вохидов Фазлиддин, 10 января 2026 г. 8:24:25
     #include <iostream> #include <map> #include <cmath> using namespace std; map<int, int> factorize(int n) { map<int, int> factors; for (int d = 2; d <= sqrt(n); ++d) { while (n % d == 0) { factors[d]++; n /= d; } } if (n > 1) factors[n]++; return factors; } int main() { int N, M; cin >> N >> M; if (N == M) { cout << 0 << endl; return 0; } map<int, int> nf = factorize(N); map<int, int> mf = factorize(M); int result = 0; for (auto& [prime, cnt] : nf) { result += abs(cnt - mf[prime]); mf.erase(prime); } for (auto& [prime, cnt] : mf) { result += cnt; } cout << result << endl; return 0; }
  2  Аманбек Ерзат Н рлан лы, 28 декабря 2025 г. 16:57:55
     что за тест в 22
  3  Карташов Григорий Алексеевич, 06 мая 2024 г. 22:34:51
     Что делать, если программа выводит тот же ответ, что и во втором тесте. однако он не засчитывается?
  4  Кудрин Максим Витальевич, 21 июля 2020 г. 18:14:30
     Достаточно просто разложить числа на простые множители, и абсолютную разность между количествами этих множителей складывать. В ответе эта сумма
  5  Монтеверде Авраам Соломонович, 20 июля 2017 г. 22:32:25
     Для решения задачи не нужно иметь ни функций проверки на простоту, ни различных хаков с библиотеками.
Даже никаких контейнеров и структур данных использовать не надо.
Достаточно всего лишь понимать, что такое разложение на простые множители, и немного подумать.
Моё решение в 25 строчек работает 0.03 секунды (С++) на всех тестах.
  6  Строганов Никита Сергеевич, 21 июня 2017 г. 16:18:17
     Сама задача легкая, но ограничение по времени делает её такой, какая она есть)
  7  Соколов Александр Сергеевич, 24 августа 2016 г. 5:42:07
     НОД не нужен
  8  Калпакбаев Мирлан Калпакбаевич, 01 февраля 2016 г. 6:27:19
     Нашел 32768/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2*3=3 всего операции 16. Из них деление 15 умножения 1.
  9  Самойлов Володя, 02 сентября 2015 г. 16:06:15
     Задача просто класс. Сделал через 2 рекурсивных функции, в одной 1 строка, в другой 4 строки.
Вот и вся программа. Админам - СПАСИБО!!!
  10  Нурдас Садырбеков, 26 декабря 2014 г. 10:32:15
     аууу??? Адмииин????
     Заблудился? :) Мы не в лесу!
  11  Ислом Искандаров, 21 декабря 2014 г. 9:18:37
     потом надо разложить эти числа на простые множители и подсчитать количество простых множителей
  12  Нурдас Садырбеков, 20 декабря 2014 г. 7:13:47
     как из 2 и 36 получилось 3?
я понял что надо сначала разделить на простые множители
2/2 и 36/2 а дальше не пойму
     Ничего не нужно делить. Здесь нужно только умножать: умножаем 2 на 2, а затем еще 2 раза на 3, т.е. получаем, что 2*2*3*3 = 36. Как раз всего 3 операции.
  13  Денис Розимовски, 12 сентября 2014 г. 17:44:25
     871440 704562
6
871874 608870
4
87962 229734
6
938308 281035
8
349435 370701
6
347659 225938
6
885881 271955
4
426706 847035
7
78734 446557
5
348104 31584
7

Числа получены при помощи функции random
  14  Ислом Искандаров, 21 августа 2014 г. 20:38:54
     Надо разделить оба числа на НОД потом разложить на простые множители эти числа прибавляя к ответу(естественно изначально ans=0) степени простых множителей вот и всё!!!
  15  Ислом Искандаров, 21 августа 2014 г. 14:34:19
     для решения этой задачи нужно использовать алгоритмы нахождения НОДа и разложение на простые множители
  16  Круглик Алексей Дмитриевич, 22 июня 2014 г. 20:57:12
     О Да,я сдал, с помощью НОДа и разложения на простые множители)
  17  Захаркин Илья Дмитриевич, 10 июня 2014 г. 16:13:01
     Я, например, вообще производил "наивную" факторизацию и сравнивал разложение n и m на простые.
  18  Бондарчук Юрий Павлович, 06 июня 2014 г. 11:07:43
     Задача с Белорусской Республиканской олимпиады))
не помню уже, правда, с какого года
 1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru



Скачать VPN для Ютуба.