C++ Program to check if a number is Multiply Perfect Number
In this post, we will implement a C++ program to check if a number is Multiply Perfect Number.
What’s a Multiply Perfect Number?
First, let us understand what is a Multiply-Perfect Number. A multiply perfect number is a generalization of a perfect number. Let’s say we have a number N for example. It is said to be multiply-perfect if the sum of all its divisors is divisible by the number itself.
In other words, a number N is a multiply-perfect number if
sigma(N) % N = 0; where sigma(N) represents the sum of divisors of N.
Some of the multiply-perfect numbers are as follows:
1, 6, 28, 120, 496..and so on.
For example, divisors of 120 are 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 15, 20, 24, 30, 40, 60, 120. Value of sigma(120) = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 10 + 12 + 15 + 20 + 24 + 30 + 40 + 60 + 120 = 360. Since 360 is divisible by 120, 120 is a multiply-perfect number.
C++ Program to check for Multiply Perfect Number
Next, we will see a C++ program that checks whether a number is a Multiply perfect number or not.
In the given example program, we find the sum of all divisors of N, and then we check if the sum is divisible by N using the modulo operator. If the sum is divisible then the number N is a multiply-perfect number else it is not.
Have a look at the below C++ code.
#include <iostream> #include <cmath> using namespace std; int main() { int n = 120; int sum = 0; for(int i=1;i<=sqrt(n);i++) { if(n%i==0) { if(n/i == i) { sum += i; } else { sum += i; sum += (n/i); } } } cout << "sum of divisors = " << sum << endl; if(sum%n==0) { cout << n << " is a Multiply Perfect Number." << endl; } else { cout << n << " is not a Multiply Perfect Number." << endl; } return 0; }
Output:
sum of divisors = 360
120 is a Multiply Perfect Number.
Thank you.
Also read: How to check a perfect number using Python
Leave a Reply