แนวคิดของจำนวนที่สมบูรณ์แบบมากนั้นคล้ายกับจำนวนที่สมบูรณ์แบบ ดี สุริยะนารายณ์ ค้นพบในปี พ.ศ. 2512 ท่านสรุปจำนวนสมบูรณ์ยิ่งเป็นตัวเลขที่ตรงตามสูตรต่อไปนี้ :
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