Utilice VB para encontrar el número de dígitos garantizados
En primer lugar, la función que usaste para juzgar el número de conservación es incorrecta. Solo juzgaste si el último dígito del número cuadrado de N es igual a N. Por supuesto, solo puedes encontrar el número de conservación de un dígito. Porque cuando N tiene más de dos dígitos (como 25), su número cuadrado es 625, que por supuesto es diferente cuando se toma el último dígito de 625, 5, para compararlo. Lo correcto es tomar los dos últimos dígitos (2 es el dígito de 25). La función correcta debe ser
Fact de función privada (N siempre que) como booleana
Dim M
M = N * N
Si Right(CStr(M), Len(CStr(N))) = CStr(N) Then Fact = True
End Function
Entonces, el código en su comando 1 It debe modificarse, por un lado, no es lo suficientemente conciso, por otro lado, está buscando números del 1 al 2000, mientras que su código está en el rango del 1 al 100.
Subcomando privado1_Click()
Atenuar I siempre y cuando K sea un entero
Para I = 1 a 2000
Si Fact( I) = Verdadero Entonces
K = K + 1
Imprimir I Si K Mod 4 = 0 Entonces Imprimir
Finalizar si
Siguiente I
End Sub
Para I = 1 a 2000
Si Hecho(I) = Verdadero Entonces
K = K + 1
Imprimir I