Abundant odd numbers: Difference between revisions

Content added Content deleted
(Abundant odd numbers en FreeBASIC)
Line 471: Line 471:
</pre>
</pre>


=={{header|FreeBASIC}}==
{{trans|Visual Basic .NET}}
<lang freebasic>
Declare Function SumaDivisores(n As Integer) As Integer


Dim numimpar As Integer = 1
Dim contar As Integer = 0
Dim sumaDiv As Integer = 0


Function SumaDivisores(n As Integer) As Integer
' Devuelve la suma de los divisores propios de n
Dim suma As Integer = 1
Dim As Integer d, otroD
For d = 2 To Cint(Sqr(n))
If n Mod d = 0 Then
suma += d
otroD = n \ d
If otroD <> d Then suma += otroD
End If
Next d
Return suma
End Function

' Encontrar los números requeridos por la tarea:

' primeros 25 números abundantes impares
Print "Los primeros 25 números impares abundantes:"
Do While contar < 25
sumaDiv = SumaDivisores(numimpar)
If sumaDiv > numimpar Then
contar += 1
Print using "######"; numimpar;
Print " suma divisoria adecuada: " & sumaDiv
End If
numimpar += 2
Loop

' 1000er número impar abundante
Do While contar < 1000
sumaDiv = SumaDivisores(numimpar)
If sumaDiv > numimpar Then contar += 1
numimpar += 2
Loop
Print Chr(10) & "1000º número impar abundante:"
Print " " & (numimpar - 2) & " suma divisoria adecuada: " & sumaDiv

' primer número impar abundante > mil millones (millardo)
numimpar = 1000000001
Dim encontrado As Boolean = False
Do While Not encontrado
sumaDiv = SumaDivisores(numimpar)
If sumaDiv > numimpar Then
encontrado = True
Print Chr(10) & "Primer número impar abundante > 1 000 000 000:"
Print " " & numimpar & " suma divisoria adecuada: " & sumaDiv
End If
numimpar += 2
Loop
End
</lang>
{{out}}
<pre>
Los primeros 25 números impares abundantes:
945 suma divisoria adecuada: 975
1575 suma divisoria adecuada: 1649
2205 suma divisoria adecuada: 2241
2835 suma divisoria adecuada: 2973
3465 suma divisoria adecuada: 4023
4095 suma divisoria adecuada: 4641
4725 suma divisoria adecuada: 5195
5355 suma divisoria adecuada: 5877
5775 suma divisoria adecuada: 6129
5985 suma divisoria adecuada: 6495
6435 suma divisoria adecuada: 6669
6615 suma divisoria adecuada: 7065
6825 suma divisoria adecuada: 7063
7245 suma divisoria adecuada: 7731
7425 suma divisoria adecuada: 7455
7875 suma divisoria adecuada: 8349
8085 suma divisoria adecuada: 8331
8415 suma divisoria adecuada: 8433
8505 suma divisoria adecuada: 8967
8925 suma divisoria adecuada: 8931
9135 suma divisoria adecuada: 9585
9555 suma divisoria adecuada: 9597
9765 suma divisoria adecuada: 10203
10395 suma divisoria adecuada: 12645
11025 suma divisoria adecuada: 11946

1000º número impar abundante:
492975 suma divisoria adecuada: 519361

Primer número impar abundante > 1 000 000 000:
1000000575 suma divisoria adecuada: 1083561009
</pre>


=={{header|Go}}==
=={{header|Go}}==