Problemi 19
Kërkesa
Jepen 2 numra a dhe n. Bëni një program që gjen \(k = a^n\), pastaj merr shumën e shifrave të k dhe gjen nëse kjo shumë është numër i thjeshtë ose jo.
Referenca: https://www.codechef.com/problems/GMPOW
Shembull
$ cat input.txt
2
2 4
5 3
$ python3 prog.py < input.txt
1
0
Në rastin e parë, \(2^4 = 16\) dhe \(1 + 6 = 7\) është numër i thjeshtë.
Në rastin e dytë, \(5^3 = 125\) dhe \(1 + 2 + 5 = 8\) nuk është numër i thjeshtë.
Zgjidhja
import math
def is_prime(n):
if n == 1: return False
if n % 2 == 0 and n > 2:
return False
for i in range(3, int(math.sqrt(n)) + 1, 2):
if n % i == 0:
return False
return True
for _ in range(int(input())):
a = int(input())
n = int(input())
k = a**n
s = sum([int(d) for d in list(str(k))])
print(1) if is_prime(s) else print(0)