def residue(power, divider): power_bin = list(bin(power)[2:]) start = 1 while len(power_bin): square = start * start t = power_bin.pop(0) if t == '1': square *= 2 square %= divider start = square return square if __name__ == '__main__': print 'Calculate Residue Of (2^x)/n' x = int(raw_input('2^x => x = ')) n = int(raw_input('(2^%s)/n => n = ' % x)) print 'Residue : %s' % residue(x, n)