NTL_1_B – べき乗

AtCoderなど過去問

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 べき...

コメント

タイトルとURLをコピーしました