[Ayuda] Necesito saber como resolver este problema

Iniciado por Dreamaker, 8 Agosto 2010, 03:16 AM

0 Miembros y 2 Visitantes están viendo este tema.

BlackZeroX

jeje es un numero aqui y en china (los 0 solo son relleno, pero aun asi es un NUMERO)!¡.
The Dark Shadow is my passion.

Dessa

#11
Para el caso seria lo mismo, eso elevaria las posibilidades a 4 números (corrijanme si me equivoco), los 4 son divisibles por 11, tambien los 4 numeros son de 4 cifras  y tambien la suma de las cifras de esos 4 números es 2, por lo tanto, Dreamaker, la forma de averiguar el password de ese usuario es el "ophcrack"  :D







Adrian Desanti

EddyW

Te respondí en CPH :P

Aunque no creo que esté correcto pero como voy a mencionar más adelante, no entendí como lo planteas :P
Copy And Paste: :D

Me entretuve un rato, no se si entendí bien lo que planteas:
Me salió esto:
Código (vb) [Seleccionar]
Private Sub Command1_Click()
Dim Bit() As String, A As Integer, B As Integer, C As Integer, D As Integer, E As Integer
Dim Total As String, Div11 As Long, SumaDig As Long

Bit = Split(StrConv("2010", vbUnicode), Chr(0))
For A = 0 To 1
For B = 0 To 1
For C = 2 To 3
For D = 2 To 3
   Total = Bit(A) & Bit(B) & Bit(C) & Bit(D)
   Div11 = Total / 11
   SumaDig = 0
   For E = 1 To Len(Div11)
       SumaDig = SumaDig + Val(Mid(Val(Div11), E, 1))
   Next
   ' Suma de digitos igual a 2
   If SumaDig = 2 Then
       List1.AddItem "Gen:> " & Total & " -Div11>" & Div11 & " -Suma>" & SumaDig
   End If
   DoEvents
Next: Next: Next: Next
MsgBox List1.ListCount
End Sub


Como que no me cuadra, podrías mencionar el sitio de donde sacaste el ejercicio ;)

SaluDOS!!!

Dreamaker

Bueno paso a aclararle las dudas a los que les interesó, es formar un una contraseña sabiendo que es un número de 4 dígitos formado por las cifras del año 2010 por lo cual queda sobreentendido que como bien dijeron algunos no podrá empezar con "0012" o "0021" o similares sino con "1 o 2" para que tenga 4 dígitos, ya que a "01" se considera su parte entera como "1"

Vuelvo a aclarar que no es ninguna tarea para los que pensaron así (y sino vean mi trayectoria en el foro) y que es más, voy a revisar los códigos por ahí y tratar de hacerlo nuevamente, y cuando lo tenga hecho dejaré la solución para todos, si alguien lo consigue hacer y quiere dejar la solución para que lo vean los demás puede hacerlo que de seguro a más de uno le servirá y no sólo a mi ya que lo voy a hacer igual ;D

EddyW

Bueno, ahora no estoy como para hacer de nuevo el code, creo que es como lo puse solo que hay que corregir los for por:

Código (vb) [Seleccionar]
For A = 0 To 3
For B = 0 To 3
For C = 0 To 3
For D = 0 To 3


Eso genera 256 posibilidades, en realidad 128 como dice el ejercicio, pero fallé en algo por eso aparecen repetidas 2 veces..
Si analizas el code verás como funca ;)

SaluDOS!!!

Dessa

#15
Para mi hay 2 resultados



Private Sub Form_Load()

Dim x As Variant
Dim m As Double
Dim i As Byte
Dim suma As Byte


For x = 1000 To 2000
 If InStr(1, x, "0") > 0 Or InStr(1, x, "1") > 0 Or InStr(1, x, "2") > 0 Then
   m = x Mod 11
   If m = 0 Then
     suma = 0
     For i = 1 To Len(x)
       suma = suma + Mid(x, i, 1)
     Next
     If suma = 2 Then MsgBox x
  End If
 End If
Next

End Sub





Adrian Desanti

BlackZeroX

para mi hay 4

Código (Vb) [Seleccionar]


Option Explicit

Private Sub Form_Load()
Dim ThisNumberNow       As Integer
Dim StrNumber           As String * 4
Dim IndexString         As Byte
Dim Suma                As Byte

    For ThisNumberNow = 1 To 9999
        If ThisNumberNow Mod 11 = 0 Then
            StrNumber = Format(ThisNumberNow, "0000")
            Suma = 0
            For IndexString = 1 To Len(StrNumber)
                Suma = Suma + Val(Mid(StrNumber, IndexString, 1))
            Next
            If Suma = 2 Then MsgBox StrNumber
        End If
    Next
   
End Sub



Cumple TODOS los criterios ( Jamas se dice que no puede estar compuesto por 0 antes xD )

P.D.: Tarea en Proceso xP.

Dulces Lunas!¡.

Ducles Lunas!¡.
The Dark Shadow is my passion.

Dessa

Cita de: Dreamaker en 10 Agosto 2010, 05:29 AM

Bueno paso a aclararle las dudas a los que les interesó, es formar un una contraseña sabiendo que es un número de 4 dígitos formado por las cifras del año 2010 por lo cual queda sobreentendido que como bien dijeron algunos no podrá empezar con "0012" o "0021" o similares sino con "1 o 2" para que tenga 4 dígitos, ya que a "01" se considera su parte entera como "1"


Si, lo aclaró nuevamente, pero para el caso es lo mismo,  un ejercicio para determinar un passwod tendria que tener un resultado solo , no ?

Adrian Desanti

rob1104

#18
A mi solo me da una opcion posible, ¿se me estará pasando algo?
Código (vb) [Seleccionar]
Private Sub Form_Load()
   Dim Div As Integer
   Dim Num As String
   Dim Suma As String
   Dim Bucle1 As Integer
   Dim Bucle2 As Integer

   Suma = ""
   Div = 2010 \ 11     'cant. de num divisibles por 11
   For Bucle1 = 1 To Div
       Num = 11 * Bucle1
       If Num > 999 Then   'preguntamos si es de 4 cifras
           For Bucle2 = 1 To Len(Num)
               Suma = Val(Suma) + Val(Mid(Num, Bucle2, 1)) 'suma de sus digitos
               If Suma = 2 Then
                   MsgBox Num
               End If
           Next
       End If
   Next
End Sub
Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.

79137913

HOLA!!!!


Yo lo hice con la funcion "mod" que devuelve el resto de la division:

Código (vb) [Seleccionar]


For PASS = 1000 To 2222
If PASS Mod 11 = 0 Then 'SE FIJA QUE DIVISIONES DE PASS/11 DAN RESTO 0
If Val(Mid(PASS, 1, 1)) + Val(Mid(PASS, 2, 1)) + Val(Mid(PASS, 3, 1)) + Val(Mid(PASS, 1, 1)) = 2 Then ' SE FIJA SI LA SUMA DE LAS CIFRAS DA 2
MsgBox "LA CONTRASEÑA ES " & PASS ' DEVUELVE LA CONTRASEÑA
End If
End If
Next
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*