Abundant odd numbers: Difference between revisions

Abundant odd numbers en Python
(Abundant odd numbers en FreeBASIC)
(Abundant odd numbers en Python)
Line 1,068:
 
The first abundant odd number above one billion is:1,000,000,575 (proper sum:1,083,561,009)
</pre>
 
=={{header|Python}}==
{{trans|BASIC256}}
<lang Python>
#!/usr/bin/python
 
numimpar = 1
contar = 0
sumaDiv = 0
 
from math import sqrt
 
def SumaDivisores(n):
# Devuelve la suma de los divisores propios de n
suma = 1
i = int(sqrt(n))
for d in range (2, i):
if n % d == 0:
suma += d
otroD = n // d
if otroD != d:
suma += otroD
return suma
 
 
#los números requeridos por la tarea:
 
# primeros 25 números abundantes impares
print ("Los primeros 25 números impares abundantes:")
while contar < 25:
sumaDiv = SumaDivisores(numimpar)
if sumaDiv > numimpar:
contar += 1
print("{0:5} suma divisoria adecuada: {1}". format(numimpar,sumaDiv))
numimpar += 2
 
#número impar abundante
while contar < 1000:
sumaDiv = SumaDivisores(numimpar)
if sumaDiv > numimpar:
contar += 1
numimpar += 2
print ("\n1000º número impar abundante:")
print (f' {numimpar - 2} suma divisoria adecuada: {sumaDiv}')
 
# primer número impar abundante > mil millones (millardo)
numimpar = 1000000001
encontrado = False
while not encontrado:
sumaDiv = SumaDivisores(numimpar)
if sumaDiv > numimpar:
encontrado = True
print ("\nPrimer número impar abundante > 1 000 000 000:")
print (f' {numimpar} suma divisoria adecuada: {sumaDiv}')
numimpar += 2
</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: 4513
4725 suma divisoria adecuada: 5195
5355 suma divisoria adecuada: 5877
5775 suma divisoria adecuada: 5977
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: 11841
 
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>
 
2,169

edits