शादीशुदा नंबर दो संख्याओं का युग्म इस प्रकार होता है कि उनके भाजक का योग जब जोड़ा जाता है तो वह दूसरी संख्या के बराबर हो जाता है।
उदाहरण के लिए (ए, बी) विवाहित संख्याओं की एक जोड़ी है यदि एस (ए) =बी + 1 और एस (बी) =ए + 1 है, जहां एस (बी) बी का विभाज्य योग है:समकक्ष शर्त यह है कि σ (ए) =σ(बी) =ए + बी + 1, जहां σ योग के विभाजक समारोह को दर्शाता है।
मंगेतर संख्याओं के पहले कुछ जोड़े हैं:(48, 75), (140, 195), (1050, 1925), (1575, 1648), (2024, 2295), (5775, 6128)।
मंगेतर संख्या के सभी ज्ञात जोड़े में विपरीत समानता है। समान समता का कोई भी जोड़ा 1010 से अधिक होना चाहिए।
एल्गोरिदम
Step 1: Find the sum of all divisors for both numbers. Step 2: Finally check if the sum of the divisors of number added by one is equal to the other number or not. Step 3: If yes, it is a Betrothed number and otherwise not.
Input:a = 48 b = 75 Output: 48 and 75 are Betrothed numbers
स्पष्टीकरण
48 :1, 2, 3, 4, 6, 8, 12, 16, 24 के भाजक। उनका योग 76 है।
75 के भाजक :1, 3, 5, 15, 25. इनका योग 49 है।
लूप के लिए उपयोग करें और 1 से ए-1 तक प्रत्येक संख्या की जांच करें।
लूप में प्रत्येक संख्या के लिए जाँच करें कि क्या यह संख्या को विभाजित कर सकता है या नहीं। यदि हाँ, तो इस संख्या को एडिविज़रसम में जोड़ें। लूप पूरा होने के बाद, aDivisorSum में a के लिए सभी भाजक का योग होता है।
इसी तरह, दूसरी संख्या के लिए सभी भाजक का योग ज्ञात करें और इसे bDivisorSum में सहेजें।
अब जाँच करें कि एक संख्या के भाजक का योग दूसरी संख्या के बराबर है या नहीं। यदि हां, तो प्रिंट करें कि दोनों बेट्रोथेड नंबर हैं। अन्यथा वे नहीं हैं।
उदाहरण
#include <stdio.h> int main() { int i; int a,b; int aDivisorSum = 0; int bDivisorSum = 0; a=48 ; b=75 ; for( i = 1; i < a; i++) { if(a % i == 0) { aDivisorSum = aDivisorSum + i; } } for( i = 1; i < b; i++) { if(b % i == 0) { bDivisorSum = bDivisorSum + i; } } if(( a+1== bDivisorSum) && (b+1 == aDivisorSum)) { printf("%d and %d are Betrothed numbers\n",a,b); } else { printf("%d and %d are not Betrothed numbers\n",a,b); } }
आउटपुट
48 and 75 are not Betrothed numbers