Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/64: Рейтинг темы: голосов - 64, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 06.08.2009
Сообщений: 19

Делители

27.02.2010, 12:59. Показов 12258. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По заданному натуральному числу N необходимо вычислить количество натуральных чисел, которые являются делителями N! (факториала числа N).

Например, при N=4, N!=4•3•2•1=24. Это число имеет следующие делители: 1, 2, 3, 4, 6, 8, 12, 24. Таким образом, искомое количество составляет 8.

Напишите программу, которая по натуральному N, находит количество делителей его факториала.

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

Единственная строка содержит одно целое число N (1 ≤ N ≤ 45).

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

Единственная строка должна содержать одно целое число – найденное количество делителей числа N!

Пример
ввод 4
вывод 8
Прошу помоч в нахождении делителей при факториале 45 программа очень долго ищет,а нужно уложится в 3 сек.
Буде очень благодарен за помощь

Добавлено через 6 минут
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int main ()
{
long double n,i=1,g;
float c;
long double  f=1;
    cin>>n;
    while(i<=n)
        {f*=i;
        i++;}
        cout<<f<<endl;
             for (i = 1; i <= f; i++) {
                 if (f/i==0) {
                      c++;
                 }
             }
             cin>>c;
            cin>>g;
    return 0;
}
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.02.2010, 12:59
Ответы с готовыми решениями:

Делители
Делители Условие задачи: Дано число n. Найти все его делители. Решение: Т. е. нам нужно найти такие числа Xi при которых...

Делители числа
надо написать программу что находит количество делителей каждого из целых чисел до 120. #include &lt;iostream&gt; using namespace...

Простые делители
Требуется написать программу которая находит сумму простых делителей числа n

10
paladin
 Аватар для Yurii_74
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
27.02.2010, 13:48
Ну ведь видно, что задача на разложение n! на степени простых чисел и количество их комбинаций. В лоб она не должна решаться. Олимпиада школьников за какой класс?
И i после некоторой итерации вообще перестанет увеличиваться.
1
1 / 1 / 0
Регистрация: 06.08.2009
Сообщений: 19
27.02.2010, 13:54  [ТС]
11 Класс.Вот сам факториал прога ищет без проблем но когда я прописываю искать делители то при 45! оно висит долго но потом дает ответ только правильный ли он
0
paladin
 Аватар для Yurii_74
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
27.02.2010, 13:59
Вы представляете себе 45! ? В нем около 12 нулей в конце. А значащих цифр - больше чем вам позволят десятки лонгдаблов суммарно. И лонгдаблы тоже вполне себе дискретны.
1
1 / 1 / 0
Регистрация: 06.08.2009
Сообщений: 19
27.02.2010, 14:12  [ТС]
Я представляю 45! но я не могу сократить время выполнения программы,тип данных который использую работает находит факториалы даже 500! но вот делители очень долго
0
paladin
 Аватар для Yurii_74
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
27.02.2010, 15:02
Цитата Сообщение от PANIC666 Посмотреть сообщение
тип данных который использую
long double физически не может хранить столько значащих десятичных знаков. Ваш вариант заведомо выдаст неправильный ответ.
Правильная последовательность:
раскладываем каждый множитель на произведение степеней простых чисел (пусть для простых чисел у нас будет массив a[N], где N - номер простого числа (0 для 2, 1 для 3, 2 для 5, 3 для 7 и т. д.) и добавляем к значению степени соотв. простого числа в массиве.
Перемножаем ненулевые значения в массиве, получаем ответ.
1
3 / 3 / 0
Регистрация: 11.12.2010
Сообщений: 6
11.12.2010, 10:52
ну допустим
5!
1 2 3 4 5 6 7
a[ 3 1 1 ]

и тогда
3*1*1=3
но это не количество делителей 5!
количество делителей у 5! это 16

Добавлено через 1 минуту
ну допустим
5!
1 2 3 4 5 6 7
3 1 1

и тогда
3*1*1=3
но это не количество делителей 5!
количество делителей у 5! это 16
1
3 / 3 / 0
Регистрация: 11.12.2010
Сообщений: 6
13.12.2010, 18:14
Цитата Сообщение от Yurii_74 Посмотреть сообщение
long double физически не может хранить столько значащих десятичных знаков. Ваш вариант заведомо выдаст неправильный ответ.
Правильная последовательность:
раскладываем каждый множитель на произведение степеней простых чисел (пусть для простых чисел у нас будет массив a[N], где N - номер простого числа (0 для 2, 1 для 3, 2 для 5, 3 для 7 и т. д.) и добавляем к значению степени соотв. простого числа в массиве.
Перемножаем ненулевые значения в массиве, получаем ответ.
А вы не могли бы показать это на примере по подробнее, а то не могу въехать.
Ну скажем на пример 5!
1
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
13.12.2010, 18:26
Цитата Сообщение от Yertugan Посмотреть сообщение
ну допустим
5!
1 2 3 4 5 6 7
a[ 3 1 1 ]
Тогда так:
5!
2 3 4 5 <- множители числа 5!
Раскладываем каждый множитель на простые числа:
2 - раскладываем на 2
2 - раскладываем на 3
4 - раскладываем на 2*2
5 - раскладываем на 5
Итого простых множителей в числе 5!:
2 3 5 <- простые множители
3 1 1 <- кол-во простых множителей
Теперь чуть-чуть комбинаторки:
3+(3*1+1)+((3+(3*1+1))*1+1)+1=
Считайте и сверяйте ответ.
2
3 / 3 / 0
Регистрация: 11.12.2010
Сообщений: 6
13.12.2010, 18:36
Теперь чуть-чуть комбинаторки:
3+(3*1+1)+((3+(3*1+1))*1+1)+1=
Считайте и сверяйте ответ.[/QUOTE]

Все понял до этого момента.
Ответ то правильный, а какая формула?
1
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
13.12.2010, 18:44
Все вот отсюда
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Итого простых множителей в числе 5!:
2 3 5 <- простые множители
3 1 1 <- кол-во простых множителей
Алгоритм такой:
сначало сумма равна 0. Идем по числам из нижней строки.
1. К имеющейся сумме прибавляем эту же сумму, умноженную на очередное число из второй строки. Плюс это же число.
2. Переходим к следующему числу из второй строки и переходим к п.1
Когда все закончится прибавить еще одну 1 (делитель 1).
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.12.2010, 18:44
Помогаю со студенческими работами здесь

Делители натурального числа
Привет всем) завтра экзамен ... не могли бы помочь мне сделать задание? или хотя бы натолкнуть на мысль. буду благодарен Дано...

Задача Делители (divisors)
Делители (divisors) Определите, какое из первых n натуральных чисел имеет наибольшее количество делителей. Входные данные ...

Программа на C++ найти делители
Найти все делители натурального числа n. программа на циклы

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

Взаимно простые делители
Даны целые числа p и q. Получить все делители числа q, взаимно простые с p, т.е. не имеющие с p общих делителей. Помогите пожалуйста...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru