46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
#!/usr/bin/python
|
|
# Abundant odd numbers - Python
|
|
|
|
oddNumber = 1
|
|
aCount = 0
|
|
dSum = 0
|
|
|
|
from math import sqrt
|
|
|
|
def divisorSum(n):
|
|
sum = 1
|
|
i = int(sqrt(n)+1)
|
|
|
|
for d in range (2, i):
|
|
if n % d == 0:
|
|
sum += d
|
|
otherD = n // d
|
|
if otherD != d:
|
|
sum += otherD
|
|
return sum
|
|
|
|
print ("The first 25 abundant odd numbers:")
|
|
while aCount < 25:
|
|
dSum = divisorSum(oddNumber )
|
|
if dSum > oddNumber :
|
|
aCount += 1
|
|
print("{0:5} proper divisor sum: {1}". format(oddNumber ,dSum ))
|
|
oddNumber += 2
|
|
|
|
while aCount < 1000:
|
|
dSum = divisorSum(oddNumber )
|
|
if dSum > oddNumber :
|
|
aCount += 1
|
|
oddNumber += 2
|
|
print ("\n1000th abundant odd number:")
|
|
print (" ",(oddNumber - 2)," proper divisor sum: ",dSum)
|
|
|
|
oddNumber = 1000000001
|
|
found = False
|
|
while not found :
|
|
dSum = divisorSum(oddNumber )
|
|
if dSum > oddNumber :
|
|
found = True
|
|
print ("\nFirst abundant odd number > 1 000 000 000:")
|
|
print (" ",oddNumber," proper divisor sum: ",dSum)
|
|
oddNumber += 2
|