Тыкая карандашиком в листочек открыл для себя вотетавот
2^2 -> √4
3^2 -> √9 -> 9-4 = 5
4^2 -> √16 -> 16-9 = 7 -> 7-5 = 2
5^2 -> √25 -> 25-16 = 9 -> 9-7 = 2
6^2 -> √36 -> 36-25 = 11 -> 11-9 = 2
7^2 -> √49 -> 49-36 = 13 -> 13-11 = 2
8^2 -> √64 -> 64-49 = 15 -> 15-13 = 2
9^2 -> √81 -> 81-64 = 17 -> 17-15 = 2
и так далее
Например зная что:
864584^2
= 747505493056
То мы знаем что следующее число за 747505493056
равняется (((864584 * 2) +1) + 747505493056) = 747507222225 = 864585^2
Ну или зная две подряд идущие степени например:
4288285225
4288416196
Узнаём их разность 4288416196 - 4288285225 = 130971
и (130971+1) / 2 = 65486
получая:
65485^2 = 4288285225
65486^2 = 4288416196
Ну и также далее легко узнаём чему равно 65487^2
просто к (4288416196 + 130971) + 2 = 4288547169.
- +2 потому что следующая степень двойки это ряд разностей степеней идущий как n+2 3-5-7-9-11-13….
А позиция этого ряда это разность степеней. А разность степеней это порядковый номер умноженный на 2 плюс 1.
Например если в цикле нужны последовательные степени то можно вычислить пару, узнать разность и далее просто получать степени чисел через простое сложение , что в теории быстрее в некоторых случаях.
long x = 1;
long y = 1;
for (int i = 2; i < 1000000; ++i)
{
y+=(x=x+2);
printf("%li\n",y);
}
long y;
for (long i = 2; i < 1000000; ++i)
{
y=i*i;
printf("%li\n",y);
}
Cуть то в чём если у нас есть число 468901735696
и мы знаем что это квадратная степень какого-то числа у меня была наивная мысля о том что зная следующее значение степени или предыдущее мы можем очень быстро узнать какое число умноженное само на себя нужно то есть извлечь корень. Как бы да, но узнать быстро без подбора вроде как никак.
Накой хер я тут всё это написал не знаю, просто для себя памятку оставил :D Я с числами вообще на вы и для вас всё это очевидность, но я это всё только что заметил гыгы, ну может будет полезно кому-то не знаю =)