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
