परिचय
यहां हम बेथरोथेड नंबर देखेंगे। यह संख्याओं का एक जोड़ा है, जैसे कि एक संख्या के उचित भाजकों का योग दूसरी संख्या से एक अधिक होता है। हमें इन जोड़ों को ढूंढना है।
उदाहरण के लिए, जोड़ा (48, 75) है। 48 के भाजक {1, 2, 3, 4, 6, 8, 12, 16, 24} हैं और योग 76 है। इसी तरह, 75 के भाजक {1, 3, 5, 15, 25} हैं तो योग 49 है।
एल्गोरिदम
BetrothedPairs (n)
शुरुआत
num को 1 से n तक लूप
sum := 1
i को 2 से num तक लूप
यदि num, i से विभाज्य है तो
sum := sum + i
यदि i * i, num के समान नहीं है तो
sum := sum + num / i
अंत यदि
अंत यदि
अंत लूप
यदि sum > num तो
num2 := sum - 1
sum2 := 1
j को 2 से num2 तक लूप
यदि num2, j से विभाज्य है तो
sum2 := sum2 + j
यदि j * j, num2 के समान नहीं है तो
sum2 := sum2 + num2 / j
अंत यदि
अंत यदि
अंत लूप
यदि sum2 = num + 1 तो
जोड़ी num और num2 प्रिंट करें
अंत यदि
अंत यदि
अंत लूप
अंत
C++ प्रोग्राम उदाहरण
#include <iostream>
using namespace std;
void BetrothedPairs(int n) {
for (int num = 1; num < n; num++) {
int sum = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
sum += i;
if (i * i != num)
sum += num / i;
}
}
if (sum > num) {
int num2 = sum - 1;
int sum2 = 1;
for (int j = 2; j * j <= num2; j++){
if (num2 % j == 0) {
sum2 += j;
if (j * j != num2)
sum2 += num2 / j;
}
}
if (sum2 == num+1)
cout << "(" << num << ", " << num2 << ")" << endl;
}
}
}
int main() {
int n = 5000;
BetrothedPairs(n);
}
आउटपुट
(48, 75) (140, 195) (1050, 1925) (1575, 1648) (2024, 2295) (5775, 6128)