NTL_1_B – べき乗
m の n 乗を1,000,000,007で割った余りを求める問題。
以下だとTLEする。
m,n = map(int,input().split())
print(pow(m, n) % 1000000007)
def power(m,n):
ans = 1
while n>0:
if n & 1:
ans *= m
m *= m
n >>= 1
return ans
m,n = map(int,input().split())
print(pow(m, n) % 1000000007)
余りを出力するなら、べき乗の計算時にmodを使うのが良い。
mod = 1000000007
def power(m,n):
ans = 1
while n>0:
if n & 1:
ans = ans * m % mod
m = m * m % mod
n >>= 1
return ans
m,n = map(int,input().split())
print(power(m, n))
繰り返し二乗法によるべき乗(pow(x,n))の計算のアルゴリズム | アルゴリズムロジック
多くのプログラミング言語でサポートされてる \(x^n\) を計算する関数のアルゴリズムです。 Input : pow(2,4) (x=2, n=4)Output : 16 べき...
コメント