Your code has several issues:
a) atmp and btmp can only store 99 characters. The input may have up to 101 characters.
b) A double (or any built in data type) is not precise enough to store numbers up to 10^100. You'll need a custom data type capable of arithmetic with large integers.
c) ^ doesn't mean 'to the power of', it means 'xor'. You're actually testing if b>=a and (b<=10)^100, the latter of which will always return true.
There is also no need to do things like test if a and b are the right range. The 'Input' section clearly says they WILL be in the right range.