Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2019, 09:20   #1
Vikro
Новичок
Джуниор
 
Регистрация: 12.12.2019
Сообщений: 1
Вопрос Степень вхождения числа в факториал. c++

Не могу сделать, на первый взгляд, простую задачку очень давно. Точнее решить могу, но не прохожу один из тестов по времени.
Пусть n – натуральное число. Обозначим как an максимальное натуральное число k, такое что nk – делитель n!. Например, a12 = 5, так как 125 = 248832 делит 12! = 479001600 (479001600/248832 = 1925), а 126 = 2985984 – не делит.

Задано число n. Найдите an.
Проверяю решение здесь https://acmp.ru/index.asp?main=task&id_task=978
Решить нужно именно на плюсах.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n,an=0, st = 0;
cin >> n;
int nn = n, k = 0;
if (nn % 2 == 0){
while(nn % 2 == 0){
nn /= 2;
}
k = 2;
}
for(int i = 3; i <= nn; i+=2) {
while (nn % i == 0) {
nn = nn / i;
}
if(nn == 1) k = i;
}
nn = n;
while(nn % k == 0){
st++;
nn /= k;
}
while(n > 0){
n /= k;
an = an + n;
}
cout << an / st ;
return 0;
}
Это одно из моих решений, не проходит 9 тест.
Может ли кто-нибудь подсказать более скоростной алгоритм?
Спасибо)
Vikro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[РЕШЕНО][Python] факториал, Фибоначчи: в ходе выполнения в цикле все последующие значения факториалов перемножаются с предыдущими, а хочу чтоб выводился факториал конкретного числа Staniislav Помощь студентам 2 19.08.2017 23:57
Удалить из записи числа все вхождения последней цифры Анатолий666 Общие вопросы C/C++ 1 16.09.2015 18:31
Вычислить факториал числа п. Факториал числа представить в виде целочисленного массива десятичных цифр. M1kefly Общие вопросы C/C++ 1 07.07.2013 21:00
Факториал числа Kazik Помощь студентам 1 07.05.2012 15:58
Факториал числа ProgramerBeatz Паскаль, Turbo Pascal, PascalABC.NET 3 11.05.2011 19:05