Rioran
Everything is possible and achievable.
- Сообщения
- 26
- Репутация
- 2
AutoIt: Тестировалось на 3.3.12.0
Версия: 1.03
Категория: Вспомогательные функции, Строки, Математика.
Описание: Функция раскладывает число на множители и возвращает строку, где множители разбиты через символ звёздочки. Можно использовать в комбинации со StringSplit по символу "*" для получения массива множителей. Алгоритм показывает высокую производительность при работе с 19-ти значными числами.
Код/Пример:
История версий:
Источник: excelworld.ru
Автор(ы):
Автор VBA алгоритма: Михаил "МСН"
Автор реализации на Au3: Роман "Rioran" Воронов
Версия: 1.03
Категория: Вспомогательные функции, Строки, Математика.
Описание: Функция раскладывает число на множители и возвращает строку, где множители разбиты через символ звёздочки. Можно использовать в комбинации со StringSplit по символу "*" для получения массива множителей. Алгоритм показывает высокую производительность при работе с 19-ти значными числами.
Код/Пример:
Код:
Global $nNumber = 13414 ; Какое число разбиваем на множители
ConsoleWrite($nNumber & " = " & GetFactors($nNumber) & @CRLF)
func GetFactors($nVal)
; Автор VBA алгоритма: Михаил "МСН", Источник: http://www.excelworld.ru/forum/7-18491-154442-16-1439576282
; Автор реализации на Au3: Роман Rioran Воронов от 16 сентября 2015
; ----------------------------------------------------------------------
; Функция раскладывает число на множители и возвращает строку, где множители разбиты через символ звёздочки
; Function returns string of prime factors of given number, joined by asterisk sign
Local $sText, $X = 3
while IsInt($nVal / 2) And $nVal > 3
$nVal /= 2
$sText &= "*2"
WEnd
While $X*$X <= $nVal
If IsInt($nVal / $X) Then
$nVal /= $X
$sText &= "*" & $X
Else
$X += 2
EndIf
WEnd
return StringMid($sText & "*" & $nVal, 2)
EndFunc
История версий:
1.00: первая публичная версия
1.01: поправка для простых чисел - удалён лишний символ.
1.02: упрощён синтаксис с помощью операторов с присвоением и проверки делимости через IsInt.
1.03: теперь переменная Х инициализируется с присовением значения.
1.01: поправка для простых чисел - удалён лишний символ.
1.02: упрощён синтаксис с помощью операторов с присвоением и проверки делимости через IsInt.
1.03: теперь переменная Х инициализируется с присовением значения.
Источник: excelworld.ru
Автор(ы):
Автор VBA алгоритма: Михаил "МСН"
Автор реализации на Au3: Роман "Rioran" Воронов