I’m trying to perform the modulus of a value in python, but I’m getting errors as it’s interpretting the modulus as a string formatting constant, from my knowledge. My initial guess would be to type cast this, but then it hangs.
val = pow(a,n,p)
val = y1*val
val = val % p
Are the two lines of code corresponding to this question. Right now, when I run this, I get:
TypeError: not all arguments converted during string formatting
At the second line.
If I wrap val into an integer and type cast it…it takes extremely long to calculate.
I’m not too skilled with python, my guess is I’m missing something simple, but what?
If yu are getting this error, y1 itself is a string. You can’t perform numeric calculations with strings – when you do “int(y1) ” – it is not casting, it is converting the number represented by characters inside the string o an actual numeric value – and that is the only way you can perform numeric operations on it.
If it is takin thta log, it is probable because you are trying convert “y1 * val” to int – which is wrong already – if y1 is a string, “y1 * val” gives you y1 concatenated to itself “val” times – so it would be a really huge number. You need to have the value i n “y1” as a number before multiplying – as in: