# Friendly Pair in C++

## C Program to check Friendly Pair or not

We will write a code to Check Friendly pair in C++

```Two numbers num1 & num2 are friendly pairs if the following holds true -

(Sum of divisors of num1)/num1= (Sum of divisors of num2)/num2
```

## Algorithm:-

For two numbers num1 and num2

1. Create two variables, sum1 and sum2
2. Find the sum of divisors for num1 and num2 and assign the respective sums to sum1 and sum2 variables
3. Find the ratio of sum1/num1 and sum2/num2
4. If both ratios are same then these are friendly pair numbers

## Method 1

### C++ Code:-

Run
```#include <iostream>
using namespace std;

int sum = 0;

for(int i = 1; i < num; i++){
if(num % i == 0)
sum = sum + i;
}
return sum;
}

int main ()
{
int num1 = 30, num2 = 140;

if(sum1/num1 == sum2/num2)
cout << num1 << " & " << num2 << " are friendly pairs";
else
cout << num1 << " & " << num2 << " are not friendly pairs";

}
// Time complexity: O(N)
// Space complexity: O(1)
```

### Output

`30 & 140 are friendly pairs`

## Method 2

### C++ Code:-

Run
```#include <iostream>
#include <math.h>
using namespace std;

int sum = 0;

for(int i = 1; i < sqrt(n); i++)
{
if (n % i == 0)
{
// For n : (1, n) will always be pair of divisor
// acc to def., we must ignore adding n itself as divisor
// when calculating for abundant number
if(i == 1)
sum = sum + i;

// Example For 100 (10,10) will be one of the pair
// But, we should add value 10 to the sum just once
else if(i == n/i)
sum = sum + i;

// add both pairs as divisors
// For any divisor i, n/i will also be a divisor
else
sum = sum + i + n/i;
}
}
return sum;
}

int main ()
{
int num1 = 30, num2 = 140;

if(sum1/num1 == sum2/num2)
cout << num1 << " & " << num2 << " are friendly pairs";
else
cout << num1 << " & " << num2 << " are not friendly pairs";

}
// Time complexity: O(√N)
// Space complexity: O(1)```

### Output

`30 & 140 are friendly pairs`

### Related Banners

Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription