Алгоритмы: различия между версиями
Перейти к навигации
Перейти к поиску
Artem (обсуждение | вклад) (→НОД) |
Artem (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
<pre> | <pre> | ||
// fast! | |||
func gcd(a uint, b uint) uint { | func gcd(a uint, b uint) uint { | ||
for a != 0 && b != 0 { | for a != 0 && b != 0 { |
Текущая версия от 02:05, 9 ноября 2024
НОД и НОК
// fast! func gcd(a uint, b uint) uint { for a != 0 && b != 0 { if a > b { a = a % b } else { b = b % a } } return a + b } func gcd2(a uint, b uint) uint { for a != b { if a > b { a = a - b } else { b = b - a } } return a + b } func lcm(a uint, b uint) uint { return (a * b) / gcd(a, b) }