Challenge: Power Calculation

Subdomeniu: Algebra (algebra)

Scor cont: 25.0 / 25

Submission status: Accepted

Submission score: 1.0

Submission ID: 464740284

Limbaj: python3

Link challenge: https://www.hackerrank.com/challenges/power-calculation/problem

Cerinta

Help Shashank in calculating the value of $S$, which is given as follows. Since the value of $S$ can be very large, he only wants the last 2 digits of $S$.

$$S = 1^N + 2^N + 3^N + \cdots + K^N$$

**Input Format**  
The first line contains an integer $T$ i.e. number of the test cases.  
The next $T$ lines will each contain a pair of integers, i.e. $K$ and $N$.  

**Output Format**   
Print the last two digits of $S$ for each test case in separate lines.  

**Constraints**  
$1 \le T \le 10^4$  
$2 \le K \le 10^{16}$  
$2 \le N \le 10^{16}$  


**Sample Input#00**  

    3
    2 2
    2 3
    3 3
    
**Sample Output#00**  

    05
    09
    36

**Sample Input#01**  

	3
    5 2
    3 4
    3 3
    
**Sample Output#01**  

	55
    98
    36

**Explanation**

For the first test case, $1^2 + 2^2 + 3^2 + 4^2 + 5^2 = 55$

Cod sursa

import sys

def main():
    data = sys.stdin.buffer.read().split()
    if not data:
        return
    t = int(data[0])
    out = []
    idx = 1
    for _ in range(t):
        k = int(data[idx]); n = int(data[idx + 1]); idx += 2

        block = 0
        for i in range(1, 101):
            block = (block + pow(i, n, 100)) % 100

        q, r = divmod(k, 100)
        ans = (block * (q % 100)) % 100
        for i in range(1, r + 1):
            ans = (ans + pow(i, n, 100)) % 100

        out.append(f"{ans:02d}")

    sys.stdout.write('\n'.join(out))

if __name__ == '__main__':
    main()
HackerRank Algebra – Power Calculation