Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

หมายเลขคู่หมั้นใน C?


หมายเลขคู่หมั้น เป็นคู่ของตัวเลขสองตัวในลักษณะที่ผลรวมของตัวหารเมื่อบวกด้วยเท่ากับจำนวนอื่น

ตัวอย่างเช่น (a, b) เป็นคู่ของหมายเลขคู่หมั้น ถ้า s(a) =b + 1 และ s(b) =a + 1 โดยที่ s(b) คือผลรวมส่วนหารของ b:เงื่อนไขที่เทียบเท่าคือ σ (a) =σ(b) =a + b + 1 โดยที่ σ หมายถึงฟังก์ชันผลรวมของตัวหาร

คู่หมั้นคู่แรก ได้แก่ (48, 75), (140, 195), (1050, 1925), (1575, 1648), (2024, 2295), (5775, 6128)

คู่หมั้นที่รู้จักกันทั้งหมดมีความเท่าเทียมกันที่ตรงกันข้าม ความเท่าเทียมกันทุกคู่ต้องเกิน 1,010

อัลกอริทึม

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 ถึง a-1

ตรวจสอบตัวเลขแต่ละตัวในลูปว่าสามารถแบ่งตัวเลข a ได้หรือไม่ ถ้าใช่ ให้เพิ่มหมายเลขนี้ใน aDivisorSum หลังจากวนซ้ำเสร็จสิ้น 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