Este ejercicio se puede hacer bien pero costaría bastante programarlo. Habría que descomponer cada número en factores primos y a través de ellos dar con los divisores, pero como te digo cuesta mucho. Vamos a encontrár los divisores probando uno por uno pero con un poco de matemáticas. Sabemos que los divisores van por pares, por ejemplo los de 24 son
1 y 24
2 y 12
3 y 8
4 y 6
Y esto nos dice que solo debemos calcular divisores hasta la raíz cuadrada, ya que uno es menor y otro mayor. Para los cuadrados perfectos habrá que tener cuidado ya que no hay pareja
16 tiene divisores
1 y 16
2 y 8
4
Además no meteremos el número entre sus divisores, luego con el 1 no pondremos su pareja.
Los límites por ejemplo se leerán de las celdas A1 y A2, los números perfectos los escribiré en la columna C
Defint A, B, i, j, suma, fila as Integer
A = cells(1,1)
B = cells(2,1)
fila = 1
For i = A to B
Suma=1
For j = 2 to sqrt(i)
if i mod j = 0 then
suma = suma + j
If j^2 <> iTthen suma = suma + i/j
End If
Next
If suma = i Then
cells(fila,3) = i
fila = fila + 1
End If
Next
Y no puedo probarlo.