I get always a runtime error in vba:
Sub rsa() Dim c1 As Long Dim c2 As Long Dim z As Long Dim e As Long pt = "xa" n = 187 e = 7 For i = 1 To Len(pt) b = Mid$(pt, i, 1) If b <> " " Then z = Asc(UCase(b)) 'Here is the problem: c = z ^ e Mod n Text = Text & c Else Text = Text & " " End If Next i Cells(20, 4).Value = Text End Sub
I get the runtime error at
c = z ^ e Mod n.
I tried different datatypes, but without a solution.
A Mod B is equals to
A - Int(A / B) * B, so you can try to use
c = z ^ e - Int(z ^ e / n) * n instead
c = z ^ e Mod n. It works for me
Runtime error 6 is a numeric overflow operation. One of your variables is not defined big enough or without enough precision. You need to show more examples etc… for people to give you a better idea. First thing I would do is print off ALL the numbers BEFORE you execute the formula.
Use the datatype Double and when converting to Double use CDbl()