Алгоритмы: различия между версиями

Материал из Artem Aleksashkin's Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «= НОД = <pre> </pre>»)
 
 
(не показана 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)
}