Private Function fSumaDivisores(n As Integer) As Integer Dim SumaDiv As Integer = 0 For k = 1 To n \ 2 SumaDiv += IIf(n Mod k = 0, k, 0) Next Return SumaDiv End Function Private Function fSumaCuboDigitos(n As Integer) As Integer Dim SumaCubos As Integer = 0 While n > 0 SumaCubos += (n Mod 10) * (n Mod 10) * (n Mod 10) n \= 10 End While Return SumaCubos End Function Private Function fFibonacci(n As Integer) As Integer Dim a As Integer = 1 Dim b As Integer = 1 Dim Fib As Integer = a + b Dim k As Integer = 3 While k < n a = b b = Fib Fib = a + b k += 1 End While Return Fib End Function
Private Sub RbNumPerfecto_CheckedChanged(sender As Object, e As EventArgs)
Handles RbNumPerfecto.CheckedChanged Dim Numero As Integer = Val(TxtNumero.Text) If Numero = fSumaDivisores(Numero) Then MessageBox.Show("El número " & TxtNumero.Text & " SI es PERFECTO", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Else MessageBox.Show("El número " & TxtNumero.Text & " NO es Perfecto", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) End If RbNumPerfecto.Checked = False TxtNumero.Focus() End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
LblResultado.Visible = False TxtResultado.Visible = False End Sub
Private Sub RbCuboPerfecto_CheckedChanged(sender As Object, e As EventArgs)
Handles RbCuboPerfecto.CheckedChanged Dim Numero As Integer = Val(TxtNumero.Text) If Numero = fSumaCuboDigitos(Numero) Then MessageBox.Show("El número " & TxtNumero.Text & " SI es CUBO PERFECTO", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Else MessageBox.Show("El número " & TxtNumero.Text & " NO es Cubo Perfecto", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) End If RbCuboPerfecto.Checked = False TxtNumero.Focus() End Sub
Private Sub RbSumaFibonacci_CheckedChanged(sender As Object, e As EventArgs)
Handles RbSumaFibonacci.CheckedChanged LblResultado.Visible = True TxtResultado.Visible = True Dim Numero As Integer = Val(TxtNumero.Text) If Numero > 2 Then LblResultado.Text = "Número de Fibonacci" TxtResultado.Text = fFibonacci(Numero).ToString End If End Sub End Class