在C中订婚的数字?
订婚的数字是两个数字对,其乘数之和等于另一个数字。
例如,如果s(a)= b +1和s(b)= a +1,则(a,b)是一对订婚数,其中s(b)是b的等分和:等价条件是σ (a)=σ(b)= a + b + 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 = 75Output:
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的每个数字。
检查循环中的每个数字是否可以将数字相除。如果是,则将此数字添加到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
以上是 在C中订婚的数字? 的全部内容, 来源链接: utcz.com/z/361843.html