1. A Perfect Number N is a number whose sum of the proper divisors is equal to N. The proper divisors are the numbers that are evenly divisible to N from 1 to N-1.
Example:
1 2 4 7 14 are the proper divisors of 28.
The sum of this number is 28, which is N itself, therefore, 28 is called a PERFECT NUMBER. If the sum of the proper divisors of N is less than N, then N is a Deficient Number. If the sum of the proper divisors of N is more than N, then N is Abundant Number.
Write a program that allows the user to enter the value of N and then displays the result indicating whether the number entered is perfect, deficient or abundant.
Sample Run:
Input a number: 16
The proper divisors of 16 are:
1 2 4 8
Sum of the proper divisors = 15
Therefore, 16 is a deficient number.
Answers
Answered by
0
I write an algorithm. You can write the program.
This is a simple program. Not efficient in computation. you can replace the comparison K < N by K <= (N+1)/2 that is more efficient.
It can be made more efficient by K < square root (N). But print K and N/K at the same time. output for N = 32 looks like 1 2 16 4 8 16
Algorithm Perfect
begin
N: Integer - input data
K : integer - current divisor
Sum : integer - sum of factors
Print "Input a number : "
Input N
Print " The proper divisors of " , N, " are "
K = 1
Sum = 0
While K <= N do
If ( N % K ) = 0 then // reminder is 0. K<= (N+1)/2 is more efficient.
Print K
Sum = Sum + K
end if
K = K + 1
end while
print "Sum of the proper divisors is " , Sum , " Hence " , N
If (Sum = N ) then
Print " is a perfect number "
else if (Sum < N ) then
Print " is a deficient number "
else
print " is an abundant number "
end if
end perfect
This is a simple program. Not efficient in computation. you can replace the comparison K < N by K <= (N+1)/2 that is more efficient.
It can be made more efficient by K < square root (N). But print K and N/K at the same time. output for N = 32 looks like 1 2 16 4 8 16
Algorithm Perfect
begin
N: Integer - input data
K : integer - current divisor
Sum : integer - sum of factors
Print "Input a number : "
Input N
Print " The proper divisors of " , N, " are "
K = 1
Sum = 0
While K <= N do
If ( N % K ) = 0 then // reminder is 0. K<= (N+1)/2 is more efficient.
Print K
Sum = Sum + K
end if
K = K + 1
end while
print "Sum of the proper divisors is " , Sum , " Hence " , N
If (Sum = N ) then
Print " is a perfect number "
else if (Sum < N ) then
Print " is a deficient number "
else
print " is an abundant number "
end if
end perfect
Similar questions