Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/07/2008, 16:01
Avatar de Txoco
Txoco
 
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: programa que muestre la suma de los primeros "n" numeros primos

Hola!

La forma de buscar los primos sí que me ha parecido muy elegante, pero le he visto un fallo...

Por ejemplo, para txtN_numero.Text = 5 y txtN_numero = 6, devuelve "11", cuando debería devolver "18" (1 + 2 + 3 + 5 + 7) y "29", respectivamente (+11). Lo que está haciendo es sumar los primos que encuentra entre los n primeros números, no los n primeros primos.

Si lo he entendido bien, sería algo así (me he basado en tu mismo código):

Código:
Public Function SumaDePrimos(ByVal TotalPrimos As Long) As Long
Dim Suma As Long
Dim PrimosEncontrados As Long
Dim i As Long
Dim j As Long

    If TotalPrimos > 0 Then Suma = 1
    
    i = 1
    PrimosEncontrados = 1
    Do While PrimosEncontrados < TotalPrimos
        i = i + 1
        For j = 2 To i
            If (i Mod j = 0) Then
                If j = i Then
                    Suma = Suma + i
                    PrimosEncontrados = PrimosEncontrados + 1
                End If
                Exit For
            End If
        Next j
    Loop
    
    SumaDePrimos = Suma
End Function