如何检查^ b是否小于n

DcC*_*CoO 1 algorithm exponentiation

给出2个正整数ab(1 <a,b <10000),我想确定a ^ b <10000.

问题是我不能只解决一个^ b,因为64 ^ 64足以打破整数大小.

我怎么能快速得到这个答案?我想通过平方来使用取幂,但我还没有得到答案.

谢谢

Dmi*_*nko 7

由于这两个ab整数,我们可以得出结论:

  1. 特殊情况 a = 1

     a ^ b < 10000 for any b
    
    Run Code Online (Sandbox Code Playgroud)
  2. 其他a值可以组织成一个简单的表

            a | critical b
    -----------------------------
            2 |    13
            3 |     8
            4 |     6
         5..6 |     5
         7..9 |     4
       10..21 |     3
       22..99 |     2
    100..9999 |     1
      10000.. |     no solutions
    
    Run Code Online (Sandbox Code Playgroud)

所以,比方说a = 4,b = 7我们可以得出结论,4**7 > 10000因为b = 7它不仅仅是关键值(6)a = 4