e-olymp 442. Построения

Задача

Построение
Иван Петрович преподает в школе физкультуру, но интересуется также математикой, в основном, с практической точки зрения. Например, его интересует вопрос, сколько различных построений существует для группы из [latex]N[/latex] человек. Иван Петрович выяснил, что если [latex]N[/latex]– простое число, то получается только [latex]2[/latex] построения: в колонну по одному ([latex]1[/latex]×[latex]N[/latex]) и в шеренгу ([latex]N×1[/latex]). Эти тривиальные построения возможны для любого [latex]N[/latex]  > [latex]1[/latex] (для [latex]N = 1[/latex] существует только одно построение ([latex]1×1[/latex]), которое не является ни шеренгой, ни колонной). Если [latex]N[/latex] – составное число, то существует и другие нетривиальные построения. Для [latex]100[/latex] человек существует девять построений: ([latex]1×100[/latex]), ([latex]2×50[/latex]), ([latex]4×25[/latex]), ([latex]5×20[/latex]), ([latex]10×10[/latex]), ([latex]20×5[/latex]), ([latex]25×4[/latex]), ([latex]50×2[/latex]) и ([latex]100×1[/latex]).

Входные данные

В первой строке ввода содержится одно целое число [latex]N[/latex] (1  ≤[latex]N[/latex]≤  109).

Выходные данные

Вывести одно целое число – количество различных построений для группы из [latex]N[/latex] человек.

Тесты

# Входные данные Выходные данные
1 100 9
2 1 1
3 6 4
4 999983 2
5 2 2

Код программы

Решение задачи

По условию задачи требуется найти все возможные построения. Это значит, что мы должны найти все возможные варианты разбиения числа на множители. Для этого можно обойтись перебором всех делителей числа от 1 до корня из этого числа, а затем умножить полученное значение на 2 так как для нас имеет значение порядок делителей. Если корень из числа есть делитель данного числа то увеличиваем счетчик на 1.

Ссылки

Ссылка на e-olymp
Ссылка на ideone

Related Images:

2 thoughts on “e-olymp 442. Построения

    • Лучше не использовать кириллицу в постоянных ссылках.
    • Посмотрите на Википедии, что такое ключевые слова. Пока ни одно не подходит.
    • Зачем писать слово программа с большой буквы? Она не оценит )
    • Условные операторы, циклы… Вы же видите, что категория задачи «Линейные вычисления»? Оказалось я напутал и вставил задачу на циклы не в ту категорию. Но это не страшно, перемещаю в категорию циклы и зачту ее там. Что касается кода, то там много лишнего. Я бы сделал так:
  1. Зачел, но мне не нравится то, что Вы делаете с формулами. Вы разбиваете формулы чуть не по одному символу. Вместо того, чтобы использовать \times Вы вставляете крестики. Для этой работы сойдёт и так, но тенденция опасная — Вы не latex изучаете, а выкручиваетесь, чтобы его не изучать.

Добавить комментарий