Cod sursa(job #2533174)

Utilizator TeodorCotetCotet Teodor TeodorCotet Data 28 ianuarie 2020 20:09:46
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator py Status done
Runda Arhiva educationala Marime 0.59 kb

MOD = 1999999973

def read_gen(fname):
    with open(fname, 'rt') as fin:
        for line in fin:
            for val in line.split():
                yield int(val)

def logpow(n, p):
    global MOD
    if p == 0:
        return 1
    elif p % 2 == 1:
        t = logpow(n, p // 2)
        return ((t * t) % MOD * n) % MOD
    else:
        t = logpow(n, p // 2)
        return (t * t) % MOD 

if __name__ == "__main__":
    it = read_gen('lgput.in')
    n, p = next(it), next(it)
    ans = logpow(n, p)
    with open('lgput.out', 'wt') as fout:
        fout.write('{}\n'.format(ans))