Crysis's blog

By Crysis, 12 years ago, In Russian

1) AB mod C, (1A, B, C < 263).
     При меньших входящих числах я решил задачу методом постепенного возведения в квадрат. Но при данных числах задача будет решена частично, потому что в вычислениях есть операция d*d mod c (d-переменная, которая может принимать максимальное значение 263 -1). Сначала вычисляется d*d и на этом шагу число не помещается в типы данных. Есть ли способ, который помог бы избежать этого?

2) Извлечение корня квадратного ( только целого числа) из длинного числа A.
  Я пробывал решить задачу методом половинного деления, но при A=10100 программа уже работает примерно 2 сек. Есть ли алгоритм, который вычисляет корень быстрее и если да, то какой его принцып работы?

  • Vote: I like it
  • +3
  • Vote: I do not like it