![]() |
Конкурс для программистов
Кто максимально быстро назовет количество нулей на конце и пять последних чисел перед ними у факториала числа 13000.
P.S.: если кто не знает, факториал числа n = 1*2*3*...*n То есть факториал 6 = 1*2*3*4*5*6=720. Итак! Кто же решится реализовать ЭТО на php? ;) |
Могу привести скрипт, который будет считать небольшие факториалы. как его усовершенствовать - в этом соль задачки :)
function get_fact($n) { $fact = 1; for($i=1;$i<=$n;++$i) { $fact *= $i; } return $fact; } //////////////// Временно офф - пошел в школу Тому, кто первый назовет цифры отстегну репки |
ты в школе изучал математику? примерно представляешь какой размерности придется хранить числа? и есть ли такие типы данных в природе.
upd на 32 битном пхп во флоат можно уместить примерно 170! если прикидывать по формуле Стиринга sqrt(2*pi()*$n)*pow(($n/M_E),$n); upd хм.. пхп ацкая вещь, 6826351722496 потом 3248 нуля вот так оно выглядит xD http://www.sendspace.com/file/5zqhee |
Цитата:
Тип long в питоне Код:
import operator |
nerezus или просто
Код:
from math import factorial |
NuR выиграл=)
|
Stanislaw, неа. Gifts выиграл.
|
Цитата:
|
Реально, школьник. Тебе что важно - кто сделал первый, или кто качественнее сделал?
|
Вообще-то, для этого не нужно считать факториал.
Количество нулей можно найти хоть на бумажке, т.к. ноль образуется из произведения 2 * 5, двойки всегда в избытке. PHP код:
|
| Время: 06:31 |