Cの婚約数?
婚約数 は、で加算されたときの除数の合計が別の数と等しくなるように、2つの数のペアです。
たとえば、(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)です。
婚約数のすべての既知のペアは、反対のパリティを持っています。同じパリティのペアは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です。
forループを使用して、1からa-1までの各数値を確認します。
ループ内の各数値がaを除算できるかどうかを確認します。はいの場合、この番号をaDivisorSumに追加します。ループが完了した後、aDivisorSumにはaのすべての除数の合計が含まれます。
同様に、2番目の数値のすべての除数の合計を見つけて、bDivisorSumに保存します。
次に、1つの数値の除数の合計が、1を加算して、他の数値と等しいかどうかを確認します。はいの場合、両方が婚約数であることを印刷します。それ以外の場合はそうではありません。
例
#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で数値列を賢く印刷するプログラム
プログラムの説明 以下に示すように、自然数の列を賢く印刷します 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15 アルゴリズム i stands for rows and j stands for columns. 5 stands for making pattern for 5 Rows and Columns Loop for each Row (i) K is initialized to i Loop for each Column (j) Do the Pattern for the current Column (j) Display the Value
-
非平方数をCで印刷する
プログラムの説明 数の2乗は、その数にそれ自体を掛けたものです。 平方数または完全な正方形は、整数の2乗である整数です。 完全な平方は整数の平方です 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 これが1から100までのすべての完全な平方の平方根です。 √1 = 1 since 12 = 1 √4 = 2 since 22 = 4 √9 = 3 since 32 = 9 √16 = 4 since 42 = 16 √25 = 5 since 52 = 25 √36 = 6 since 6