![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Здравствуйте! Обращаюсь к знатокам. Есть задача "По заданному натуральному числу N необходимо вычислить количество натуральных чисел, которые являются делителями N! (факториала числа N)."
Доп. условие: лимит времени 1с. Но у меня не проходит несколько тестов из-за исчерпанного лимита времени. Как можно оптимизировать? Код:
var fack:Int64; i,n,k:Integer; begin fack:=1; Readln(n); for i:=2 to n do fack:=fack*i; for i:=1 to fack do if fack mod i=0 then inc(k); Writeln(k); end. Последний раз редактировалось Dmitry_DM, 21.10.2012 в 21:21. |
#2
|
||||
|
||||
![]() Код:
var fack:Int64; i,n,k:Integer; begin fack:=1; Readln(n); asm cli end for i:=2 to n do fack:=fack*i; for i:=1 to fack do if fack mod i=0 then inc(k); asm sti end Writeln(k); end. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
|||
|
|||
![]() Цитата:
Код:
asm Код:
asm cli end Код:
cli Код:
sti Последний раз редактировалось Dmitry_DM, 21.10.2012 в 22:11. |
#4
|
||||
|
||||
![]() M.A.D.M.A.N., а не наоборот?
Dmitry_DM, во втором цикле достаточно to fack div 2 do Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#5
|
||||
|
||||
![]() Цитата:
В принципе второй цикл можно затолкать в первый. Типа: Код:
var fack:Int64; i, j,n,k:Integer; begin fack:=1; Readln(n); for i:=2 to n do begin for j := fack to fack * i do inc(k, integer(fack mod j=0)); fack:=fack*i; end; Writeln(k); end. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 21.10.2012 в 22:17. |
#6
|
||||
|
||||
![]() Хм... А я почему-то думал, что именно когда флаг установлен прерывания игнорируются. Хотя, имхо, винде все эти "фигли-мигли" пофиг.
![]() Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#7
|
||||
|
||||
![]() Цитата:
![]() А вот под досом - вполне. jmp $ ; Happy End! The Cake Is A Lie. |
#8
|
|||
|
|||
![]() Цитата:
А по вашему коду ввод 4 вывод 76808195 Последний раз редактировалось Dmitry_DM, 21.10.2012 в 22:25. |
#9
|
||||
|
||||
![]() Цитата:
1. Факториа́л числа n (обозначается n!, произносится эн факториа́л) — произведение всех натуральных чисел от 1 до n включительно. 2. Если для некоторого целого числа a и целого числа b существует такое целое число q, что bq=a то говорят, что число a делится нацело на b или что b делит a. При этом число b называется делителем числа a, делимое a будет кратным числа b, а число q называется частным от деления a на b. Исходя из этого всего возникает вопрос: А зачем вообще считать факториал? Эта задача - комбинаторная, а не расчетная. Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. Последний раз редактировалось dr. F.I.N., 22.10.2012 в 07:36. |
#10
|
||||
|
||||
![]() Дык задача из разряда прикладных, когда надо сделать нах никому ненужный алгоритм (например коля с васей решили померяться пиписьками, вася снял штаны, а коля побежал в москву, потом в асхтрахань, потом на камчатку, просчитать, сколько пыли было на правом ботинке васи, если известно, что длина пиписьки коли на 1/4 от трети длины четверти квадрата диаметра окружности вписанного в треугольник, угол которого равен углу между яйцами и коленом дяди пети больше на десять в минус четвертой, чем расстояние между луной и плутоном в день летнего солнцестояния в период засухи в африке).
И еще чтоб быстро работало. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#11
|
||||
|
||||
![]() Цитата:
![]() Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
#12
|
||||
|
||||
![]() Цитата:
![]() Пощелкал и готово ![]() — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |