C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

番号がC++でクリシュナムルシー番号であるかどうかを確認します


ここでは、クリシュナムルティ番号かどうかを確認する方法を説明します。各桁の階乗の合計が数値と同じである場合、数値はクリシュナムルティ数です。たとえば、数値が145の場合、sum =1! + 4! + 5! =1 + 24 + 120 =145。つまり、これはクリシュナムルティの数です。

論理は単純で、各数の階乗を見つけて合計を見つける必要があります。それが与えられた数と同じである場合、その数はクリシュナムルティ数です。より良いアイデアを得るためにコードを見てみましょう。

#include <iostream>
#include <cmath>>
using namespace std;
long factorial(int n){
   if(n <= 1){
      return 1;
   }
   return n * factorial(n - 1);
}
bool isKrishnamurty(int number) {
   int temp = number;
   int sum = 0;
   while(number > 0){
      sum += factorial(number % 10);
      number /= 10;
   }
   if(sum == temp){
      return true;
   }
   return false;
}
int main() {
   int n = 145;
   if(isKrishnamurty(n)){
      cout << n << " is Krishnamurty Number";
   } else {
      cout << n << " is not Krishnamurty Number";
   }
}

出力

145 is Krishnamurty Number

  1. C ++で多数が2、3、5で割り切れるかどうかを確認します

    ここでは、数値が2、3、5で割り切れるかどうかを確認する方法を説明します。この場合、その数は非常に多い数です。したがって、数値を文字列として入力します。 数値が2、3、5のLCMで割り切れる場合、その数値は2、3、5で割り切れます。したがって、2、3、5のLCMは30です。数値が30で割り切れるかどうかを確認する必要があります。数値は、10で割り切れる(最後の桁が0)ときは30で割り切れる、3で割り切れる(すべての桁の合計は3で割り切れる) 例 #include <bits/stdc++.h> using namespace std; bool isDiv30(string nu

  2. C++で多数が11で割り切れるかどうかを確認します

    ここでは、数値が11で割り切れるかどうかを確認する方法を説明します。この場合、その数は非常に多い数です。したがって、数値を文字列として入力します。 数値が11で割り切れるかどうかを確認するには、奇数の位置の値の合計と偶数の位置の値の合計が同じである場合、その数値は11で割り切れます。 例 #include <bits/stdc++.h> using namespace std; bool isDiv11(string num){    int n = num.length();    long odd_sum = 0, even_sum =