Вот лучший алгоритм, который я знаю (в Python)
def prime_factors(n):
"""Returns all the prime factors of a positive integer"""
factors = []
d = 2
while n > 1:
while n % d == 0:
factors.append(d)
n /= d
d = d + 1
return factors
pfs = prime_factors(1000)
largest_prime_factor = max(pfs) # The largest element in the prime factor list
вышеупомянутые выполнения метода в O(n)
в худшем случае (когда вход является простым числом).
РЕДАКТИРОВАНИЕ:
Ниже O(sqrt(n))
версия, как предложено в комментарии. Вот код, еще раз.
def prime_factors(n):
"""Returns all the prime factors of a positive integer"""
factors = []
d = 2
while n > 1:
while n % d == 0:
factors.append(d)
n /= d
d = d + 1
if d*d > n:
if n > 1: factors.append(n)
break
return factors
pfs = prime_factors(1000)
largest_prime_factor = max(pfs) # The largest element in the prime factor list
Вот ответ от одной из печи разработчикам.
Проверить полная информация здесь . Они объяснились достаточно подробно.
Я не могу говорить от имени FogCreek, но знаю, что когда я выбирал, какую DVCS использовать, многие люди отмечали, что git плохо работает в Windows (если он не работает в cygwin). Поскольку FogBugz предназначен для работы в системах Windows или Linux (насколько я понимаю - я не являюсь пользователем), наличие дополнительного уровня (cygwin) для запуска git могло быть определяющим фактором. Я мало что знаю о Bazaar или Monotone, поэтому не могу дать там никаких отзывов.
Исходный ответ (ноябрь 2009 г., у GitHub всего 1 год, у Git только 4)
Я действительно не знаю, но рискну «улучшить поддержку Windows», поскольку Windows потенциально является основная платформа для большей части их клиентской базы.
Git по-прежнему является слишком продуктом "unix / linux" с "обнадеживающей" поддержкой Windows через mSysGit .
Просто прочтите тон некоторых из статей MSysGitHerald , таких как девятая :
В течение очень долгого времени msysGit продвигалась вперед группой, состоящей из Ханнеса, Штеффена, Себастьян Шуберт и я [Йоханнес Шинделин]. На каком-то этапе я так расстроился, что вообще перестал работать над msysGit. Причина проста: это было не так весело. Слишком много людей просили об исправлениях или улучшениях, и никто из них не предлагал своего собственного вклада. Поскольку я не являюсь специалистом по Windows (являюсь счастливым пользователем Linux с 1994 года), работа над mSysGit не принесла мне достаточного вознаграждения, чтобы продолжить. Я остановился.
Но тем временем все изменилось.
Мы получили вклад от ...
Это не вселяет особой уверенности, когда дело доходит до передачи этого инструмента вашему ИТ-боссу. Я очень доволен Git для личного использования и очень благодарен за тяжелую работу всех участников mSysGit, но в большой компании мне было бы трудно сделать Git инструментом DVCS по умолчанию, принятым нашими разработчиками Windows.
И то, и другое из-за кривой обучения, но главным образом потому, что уровень поддержки еще не достигнут.
Это только личное мнение, и если у вас есть другой опыт успешного развертывания Git, вам будет больше возможностей.
Mercurial является ближайшим DVCS к Git и основан на переносимых сценариях Python (а не сценариях sh на базе Linux / Unix. ), это может быть прагматичный выбор.
Обновление 2018, семь лет спустя: да, теперь поддержка Git в Windows стала реальностью.
А у Microsoft есть вся кодовая база Windows в ] one (гигантский) репозиторий Git: см. « Крупнейшее репозиторий Git на планете »: 3,5 млн файлов, 300 ГБ, 4000 инженеров, ежедневно производящих 1760 «лабораторных сборок» в 440 филиалах в дополнение к тысячам построений проверки запросов на вытягивание.
Но это с добавлением GVFS (Git Virtual FileSystem) ,который позволяет динамически загружать только те части, которые вам нужны, в зависимости от того, что вы используете.
Это , а не в собственном Git, хотя его интеграция началась в прошлом декабре 2017 года с реализации узкого / частичного клонирования .
Kiln также рекламирует поддержку Git :
Kiln , наше лучшее в своем классе решение для хостинга DVCS, поддерживает Git, а также Mercurial! GitHub великолепен. FogBugz великолепен. Что могло быть еще лучше? Как насчет их интеграции! FogBugz может быть уведомлен по GitHub Web Hooks всякий раз, когда во входящем комментарии к набору изменений упоминается case.
Когда я смотрел на систему DVCS , мне нравился Mercurial, потому что.
Может быть разработчики печи думали так же ...
(Все основные системы DVCS достаточно хороши, иначе другие факторы сыграли бы большую роль)
Я думаю, что проблема hg vs. git - отвлекающий маневр, поскольку проблема поддержки ОС сама по себе является серьезной разницей. Настоящий вопрос заключается в том, почему hg, а не bzr, поскольку эти два очень похожи, и сами разработчики hg считают bzr своим реальным конкурентом, и наоборот. Когда дело дошло до выбора DVCS для OpenSolaris и OpenJDK, Sun провела всестороннюю оценку обоих. Хотелось бы знать, как использовался процесс сбора ртути в FogCreek. Все, что мы получили в качестве ответов (не считая вопроса о поддержке ОС), - это общие сведения.