Алгоритмы: различия между версиями
Перейти к навигации
Перейти к поиску
Artem (обсуждение | вклад) (Новая страница: «= НОД = <pre> </pre>») |
Artem (обсуждение | вклад) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
= НОД = | = НОД и НОК = | ||
<pre> | <pre> | ||
// 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) | |||
} | |||
</pre> | </pre> |
Текущая версия от 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) }