34 lines
808 B
Plaintext
34 lines
808 B
Plaintext
Function ModPow(b As Uinteger, e As Uinteger, m As Uinteger) As Uinteger
|
|
Dim As Uinteger p = 1
|
|
While e <> 0
|
|
If (e And 1) Then p = (p*b) Mod m
|
|
b = (b*b) Mod m
|
|
e Shr= 1
|
|
Wend
|
|
Return p
|
|
End Function
|
|
|
|
Function isDeceptive(n As Uinteger) As Uinteger
|
|
Dim As Uinteger x
|
|
If (n And 1) <> 0 Andalso (n Mod 3) <> 0 Andalso (n Mod 5) <> 0 Then
|
|
x = 7
|
|
While x*x <= n
|
|
If (n Mod x) = 0 Orelse (n Mod (x+4)) = 0 Then Return (ModPow(10, n-1, n) = 1)
|
|
x += 6
|
|
Wend
|
|
End If
|
|
Return 0
|
|
End Function
|
|
|
|
Dim As Uinteger c = 0, i = 49
|
|
While c <> 41 ' limit for signed 32-bit integers
|
|
If isDeceptive(i) Then
|
|
Print Using "#######"; Csng(i);
|
|
c += 1
|
|
If (c Mod 10) = 0 Then Print
|
|
End If
|
|
i += 1
|
|
Wend
|
|
|
|
Sleep
|