| 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 |
Задача с Белорусской Республиканской олимпиады)) не помню уже, правда, с какого года
|
|
|