# Python Program to Generate Perfect Numbers in an Interval

This python program generates perfect numbers in an interval given by user.

A perfect number is a positive integer number in which sum of all positive divisors excluding the number itself is equal to that number.

Perfect Number Example: 6 is perfect number since its divisors are 1, 2, and 3. Sum of divisors is: 1+2+3 = 6.

## Python Source Code: Generate Perfect Numbers

``````
# Generate Perfect numbers in interval

# Function to check perfect number
def is_perfect(n):

if n< 1:
return False

perfect_sum = 0

for i in range(1,n):
if n%i==0:
perfect_sum += i

return perfect_sum == n

min_value = int(input('Enter minimum value: '))
max_value = int(input('Enter maximum value: '))

# Looping & displaying if it is Perfect
# Here min_vale & max_value are included
print('Perfect numbers from %d to %d are:' %(min_value, max_value))
for i in range(min_value, max_value+1):
if is_perfect(i):
print(i, end=' ')

``````

## Perfect Number Generation: Output

```Perfect numbers from -10 to 100000 are:
6 28 496 8128
```

## Perfect Number Generation: Code Explanation

We first read min_value and max_value from user. Function `is_perfect()` is used to check whether a given number is perfect or not. We loop from `min_value` to `max_value` and pass each number to `is_perfect()` function. If this function returns `True`, then we print it.