31 lines
520 B
Python
31 lines
520 B
Python
|
#potęgowanie binarne (left-to-right)
|
||
|
|
||
|
def potegowanie(x, k):
|
||
|
y = 1
|
||
|
i = k.bit_length()
|
||
|
while i >= 0:
|
||
|
y = y**2
|
||
|
if (k & 1) == 1:
|
||
|
y = y*x
|
||
|
k = k >> 1
|
||
|
i = i - 1
|
||
|
return y
|
||
|
|
||
|
|
||
|
def potegowanieimod(x, k, n):
|
||
|
y = 1
|
||
|
i = k.bit_length()
|
||
|
while i >= 0:
|
||
|
y = y**2 % n
|
||
|
if (k & 1) == 1:
|
||
|
y = y*x % n
|
||
|
k = k >> 1
|
||
|
i = i - 1
|
||
|
return y
|
||
|
|
||
|
|
||
|
print(potegowanie(2, 6))
|
||
|
|
||
|
print(potegowanieimod(5, 2, 10))
|
||
|
|