Поиск минимального числа при условии
|
|
Среда, 08 Июля 2020 г. 16:47
+ в цитатник
OpenGL:
Цитата JoeUser @ BigInteger Nod(BigInteger a, BigInteger b) {
while (a != 0 and b != 0) if (a > b) a %= b; else b %= a;
return a+b;
}
У тебя частный случай - нахождение нод, когда один из операндов вмещается в int. Так что быстрее будет так:
int gcd_int(int a, int b)
{
while(b != 0)
{
int t = a;
a = b;
b = t % b;
}
return a;
}
int gcd(BigInteger a, int b)
{
// b не должно быть равно 0
return gcd_int(b, a % b);
}
BigInteger lmc(BigInteger a, int b)
{
if(b == 0) return a;
return a * (b / gcd(a, b));
}
https://forum.sources.ru/index.php?showtopic=419125&view=findpost&p=3834024
Метки:
Алгоритмы
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-