>>628
可変参照は関係あるのかな?
どちらもbit処理を下から順にするアルゴリズムで変わりなく
>>613はbitマスクを大きく(左シフト)していく方法
>>617はbitマスクは常に1で本体を小さく(右シフト)していく方法の違いだけだよね
だから後者の方式でもRustでコーディングできて動くよね
両者の差分
  fn calc(num: usize, pow: usize, m: usize) -> usize {
 - let mut bit: usize = 1;
 + let mut bit: usize = pow;
   let mut res: usize = 1;
   let mut tmp_pow: usize = num;
 
 - while pow >= bit {
 -  if pow & bit > 0 {
 + while bit > 0 {
 +  if bit & 1 > 0 {
     res = (res * tmp_pow) % m;
    }
 -  bit = bit << 1;
 +  bit = bit >> 1;
    tmp_pow = (tmp_pow * tmp_pow) % m;
   }
   res
  }