Challenge: Devu Vs Police

Subdomeniu: Number Theory (number-theory)

Scor cont: 60.0 / 60

Submission status: Accepted

Submission score: 1.0

Submission ID: 464744631

Limbaj: python3

Link challenge: https://www.hackerrank.com/challenges/devu-police/problem

Cerinta

It is holi festival, festival of colors. Devu is having fun playing holi and is throwing balloons with his girlfriend Glynis. Police saw this mischief and tried arresting his girlfriend, Devu being a mathematician asked police not to arrest his girlfriend and instead torture him with brain teaser. Devu was a young engineering fellow and he did not knew that policeman was equally good in mathematics, policeman gave Devu a problem which is as follows:

Let $f(n,k) = n^k$

Your aim is to answer $f(n_1,k_1)^{f(n_2,k_2)} \bmod n$

Can you help devu and his girlfriend rescue from modern police.

Input Format

You are given $T$ which is the number of queries to solve.

Each Query consist of 5 space separated integers $n_1,k_1,n_2,k_2,n$

Output Format

Output contains exactly $T$ lines. $i^{\text{th}}$ line containing the answer for the $i^{\text{th}}$ query.

Constraints

- $1 \le T \le 10^4$       
- $0 \le n_1,k_1,n_2,k_2 \le 10^9 $       
- $1 \le n \le 10^7 $

**Note** The output to $0^0$ should be $1$.

Cod sursa

lim = 3200
mark = bytearray(lim)
primes = [2]
for i in range(3, lim, 2):
    if mark[i]: continue
    primes.append(i)
    for j in range(3 * i, lim, 2 * i):
        mark[j] = 1

def factor(n):
    f = {}
    for p in primes:
        if p * p > n: break
        while n % p == 0:
            n //= p
            f[p] = f.get(p, 0) + 1
    if n > 1: f[n] = 1
    return f

T = int(input())
for t in range(T):
    n1, k1, n2, k2, n = map(int, input().split())
    if n1 == 0:
        f1 = 1 if k1 == 0 else 0
    else:
        f1 = pow(n1, k1, n) or n
    if n2 == 0:
        f2 = 1 if k2 == 0 else 0
    else:
        phi = 1
        for p, e in factor(n).items():
            phi *= (p - 1) * p ** (e - 1)
        f2 = pow(n2, k2, phi) or phi
    print(pow(f1, f2, n))
HackerRank Number Theory – Devu Vs Police