Cプログラムの婚約数?
たとえば、ペアは(48、75)のようになります。したがって、48の約数は{1、2、3、4、6、8、12、16、24}であり、合計は76です。同様に、75の約数は{1、3、5、15、25}であるため、合計49です。
アルゴリズム
BetrothedPairs(n)-
begin for num in range 1 to n, do sum := 1 for i in range 2 to num, do if num is divisible by i, then sum := sum + i if i * i is not same as num, then sum := sum + num / i end if end if if sum > num, then num2 := sum – 1 sum2 := 1 for j in range 2 to num2, do if num2 is divisible by j, then sum2 := sum2 + j if j * j is not same as num2, then sum2 := sum2 + num2 / j end if end if done if sum2 = num + 1, then print the pair num and num2 end if end if done done end
例
#include <iostream>
using namespace std;
void BetrothedPairs(int n) {
for (int num = 1; num < n; num++) {
int sum = 1;
for (int i = 2; i * i <= num; i++) { //go through each number to get proper divisor
if (num % i == 0) {
sum += i;
if (i * i != num) //avoid to include same divisor twice
sum += num / i;
}
}
if (sum > num) {
int num2 = sum - 1;
int sum2 = 1;
for (int j = 2; j * j <= num2; j++){
if (num2 % j == 0) {
sum2 += j;
if (j * j != num2)
sum2 += num2 / j;
}
}
if (sum2 == num+1)
cout << "(" << num << ", " << num2 <<")" << endl;
}
}
}
int main() {
int n = 5000;
BetrothedPairs(n);
} 出力
1
-
アームストロング数のためのCプログラム
アームストロングかどうかに関係なく、ユーザーが入力した数字nを確認する必要があるタスクが与えられます。 アームストロング数は、すべての桁の合計が桁数で累乗される場合、または桁の順序nと言うことができる場合、桁と同じです。 以下は、アームストロング数を見つける方法の簡単な表現です- 数式- wxyz…. = pow(w, n) +pow(x, n) + pow(y, n) + pow(z, n) + ….. アルゴリズム START Step 1-> Declare a function to find the value after power o
-
Cプログラムで行列の対角パターンで数値を印刷します。
タスクは、対角パターンのnxnの行列を印刷することです。 nが3の場合、対角パターンで行列を印刷するのは-です。 したがって、出力は次のようになります- 例 Input: 3 Output: 1 2 4 3 5 7 6 8 9 Input: 4 Output: 1 2 4 7 3 5 8 11 6 9 12 14 10 13 15 16 この問題は、数値nを与え、n x nの行列を生成