सुपर परफेक्ट नंबर की अवधारणा पूर्ण संख्या के समान है। यह 1969 में डी सूर्यनारायण द्वारा खोजा गया था। उन्होंने सुपर परफेक्ट नंबर को एक संख्या के रूप में सामान्यीकृत किया जो निम्नलिखित सूत्र को संतुष्ट करता है:
sig(sig(n)) = 2n
यहाँ, sig(n) वह फलन है जो किसी संख्या के भाजक के योग की गणना करता है, इसे भाजक सारांश फलन के रूप में भी जाना जाता है।
इस अवधारणा को आपको स्पष्ट करने के साथ निम्नलिखित उदाहरण:
हमें यह जांचना होगा कि संख्या N एक अति उत्तम संख्या है या नहीं:
N = 16
आउटपुट
yes
स्पष्टीकरण − यह जांचने के लिए कि कोई संख्या एक पूर्ण संख्या है या नहीं, हम उसके भाजक का योग ज्ञात करेंगे।
sig(16) = 1 + 2 + 4 + 8 + 16 = 31 ( divisors of 16 are 1, 2, 4, 8, 16 1, 2, 4, 8, 16) sig( 31) = 1 + 31 = 32( 31 is a prime number) 2*n = 32 = sig(sig(n))
इससे पता चलता है कि 16 एक अति उत्तम संख्या है।
अब आइए एक ऐसी संख्या का उदाहरण देखें जो अति उत्तम संख्या नहीं है।
n = 6 sig(6) = 1 + 2 + 3 + 6= 12 sig(12) = 1 + 2 + 3 + 4 +6 + 12 = 28 6*2 = 12 != 28.
इससे पता चलता है कि 6 एक अति उत्तम संख्या नहीं है
उदाहरण
#include<stdio.h>
//function to find the sum of divisors of num
int divisorsum(int n){
int sum = 0; // intialising the sum
for (int i=1; i*i <= n; ++i){
if (n%i == 0) { // find the sum of divisors
if (i == (n/i))
sum += i;
else
sum += (i + n/i);
}
}
return sum;
}
int main() {
int n = 16;
int n1 = divisorsum(n);
if(2*n == divisorsum(n1)){
printf("The number %d is a superperfect number", n);
} else{
printf("The number %d is not a superperfect number", n);
}
return 0;
} आउटपुट
The number 16 is a super perfect number