2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Количество делителей.
Сообщение28.12.2013, 18:53 


10/05/13
251
Добрый вечер.
Я решаю такую задачу, даны 10 чисел $a_1, a_2, ..., a_{10}$
Нужно определить сколько делителей у произведения этих чисел.
Т.е. количество делителей числа:
$a_1 \cdot a_2 \cdot ... \cdot a_{10}$
Конечно это задачу можно решить методом ДП.
Вот решение:
Код:
map<uint32_t, uint32_t> memo;
uint32_t F(uint32_t n)
{
   if (n == 1) return 1; /* 1 has only one divisor */
   if (memo.find(n) != memo.end())
      return memo[n];

   uint32_t d;
   for (d = 2; d < n; ++d)
      if (n%d)
         break;

   if (n == d)
      return (memo[n] = 2);
   else
      return (memo[n] = F(n/d)+F(d));
}

Но вот возникла проблема, дело в том что эти числа не менее $1$ и неболее $10^4$
Так что при считании произведения получается переполнение.

Ну так как эти 10 чисел - делители. То можно ли для каждого посчитать количество делителей, а потом их суммировать?
Некоторые из них могут быть равны, что делать в таком случае?

И вообще справедливо ли это утверждение что, если $a_1, a_2, ... a_{10}$ делители некого числа,
то количество делителей этого числа, равно сумме количества делителей каждого из его попарно различных
делителей.

-- 28.12.2013, 19:27 --

Да, сразу противоречие:
У 8-ми 4 делителя. А сумма кол-ва делителей делителей 8 равно 5. 2 и 4 скажем.
Но как тогда быть?

-- 28.12.2013, 19:30 --

И функция неверна тогда, похоже я совсем заплутал. :-(

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение28.12.2013, 19:01 


18/12/13
17
Просто сложить нельзя, т.к. множества делителей могут пересекаться и мы посчитаем какой-либо делитель несколько раз. Вместо этого каждое число можно факторизовать, сложить показатели степеней простых , тем самым получив факторизацию произведения. Теперь количество делителей посчитать будет просто.

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение28.12.2013, 19:02 


10/05/13
251
helgui, извините, но я новичок. И не знаю что такое факторизация. Можете привести пример?

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение28.12.2013, 19:05 


18/12/13
17
Конечно. Каждое натуральное число представимо в виде произведения простых единственным образом. Или же в виде произведения степеней различных простых (равносильна формулировка). Зная факторизацию числа можно определять его теоретико- числовые характеристики, в том числе количество делителей.

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение28.12.2013, 19:06 


10/05/13
251
Факторизация - это разложение числа на произведение простых чисел.
Но как это поможет определить количество делителей числа?

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение28.12.2013, 19:07 


18/12/13
17
Пример. $36=2^2 \cdot 3^2$

-- 28.12.2013, 20:08 --

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

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение28.12.2013, 19:08 


10/05/13
251
helgui, получается, у 36 4 делителя?

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение28.12.2013, 19:10 


18/12/13
17
Нет, у 36 девять делителей. Количество делителей однозначно определяется показателями степеней простых. И не равно их сумме. Мы суммируем показатели, чтобы узнать факторизацию произведения чисел. Например, $a = 2 \cdot 3, b = 2^3 \cdot 5$, тогда $c = ab = 2^4\cdot3 \cdot 5$

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение28.12.2013, 19:14 


10/05/13
251
Но как вы это определили?

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение28.12.2013, 19:17 


18/12/13
17
Я определил это, как $3\cdot 3$. Все, дальше сами. На вики есть статья про функцию количество делителей, она же $\tau$ или $ \sigma_0$

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение28.12.2013, 22:56 


05/09/12
2587

(Оффтоп)

Вчера сын озадачился идеей - написать калькулятор рациональных чисел (в натуральных дробях). Сразу выяснили, что 4 арифметические операции реализуются тривиально, осталось только нормализовать результат - привести к несократимой дроби. Ну я и сказал - придумай сам более-менее эффективный алгоритм, не просто перебор всех натуральных чисел до половины факторизуемого - это неоптимально, и не перебор всех простых до того же предела - надо иметь длинный массив готовых простых. А сейчас почитал в вики обзор методов факторизации и подумал, что несколько опрометчиво озадачил его этим вопросом...

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение29.12.2013, 00:52 
Заслуженный участник


16/02/13
4195
Владивосток
Недопол. Вообще-то, для приведения к несократимой дроби нафиг не нужна факторизация.

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение29.12.2013, 01:07 


05/09/12
2587
Недопол. (C) Намекните, как можно сделать без факторизации.

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение29.12.2013, 01:17 
Заслуженный участник


16/02/13
4195
Владивосток
Алгоритмом Евклида найти НОД же. Учтя при этом специфику чисел, если полезут совсем уж громадные числитель/знаменатель.

 Профиль  
                  
 
 Re: Количество делителей.
Сообщение29.12.2013, 01:23 


05/09/12
2587
Уже понял, что вы Евклида предложите. Спасибо.

(Оффтоп)

Хотел написать, что не будем захватывать чужую тему, но я до сих пор не понимаю, где проходит грань между захватом темы и развитием ее, попытками тоже разобраться в вопросе, озвученном ТС. Я уже несколько раз получал предупреждения, но так и не понял этот момент. Сильно подозреваю, что он абсолютно субъективен.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group