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

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


ここでは、数値が13で割り切れるかどうかを確認する方法を説明します。この場合、その数は非常に多い数です。したがって、数値を文字列として入力します。

数値が次の状況を満たしている場合、数値は13で割り切れます-

  • 交互の合計が得られる場合にのみ、数値は13で割り切れます。つまり、右から左への3つの数値のブロックの加算と減算が、13で割り切れます。たとえば、2911285は、交互の合計が13で割り切れます。サイズ3のブロックは2– 911 + 285 =-650で、13で割り切れます。
  • 数値が13で割り切れるのは、最後の桁に4を掛けたものを足し算して数が13で割り切れる場合のみです。たとえば、2353を考えます。上記の規則を適用すると、235 + 3 *4=になります。 247.次の反復では、24 + 7 * 4 =52です。52は13で割り切れるので、与えられた数は13で割り切れます。

#include <bits/stdc++.h>
using namespace std;
bool isDiv13(string num){
   int length = num.size();
   if (length == 1 && num[0] == '0')
      return true;
   if (length % 3 == 1) { //when length is not divisible by 3, remainder is 1
      num +="00";
      length += 2;
   } else if (length % 3 == 2){ //when length is not divisible by 3, remainder is 2
      num += "0";
      length += 1;
   }
   int sum = 0, p = 1;
   for (int i = length - 1; i >= 0; i--) {
      int set = 0;
      set += (num[i--] - '0');
      set += (num[i--] - '0') * 10;
      set += (num[i] - '0') * 100;
      sum = sum + set * p;
      p *= (-1);
   }
   sum = abs(sum);
   return (sum % 13 == 0);
}
int main() {
   string num = "83959092724";
   if(isDiv13(num)){
      cout << "Divisible";
   } else {
      cout << "Not Divisible";
   }
}

出力

Divisible

  1. Pythonで多数が19で割り切れるかどうかを確認します

    大きな数が与えられ、その数が19で割り切れるかどうかを確認する必要があるとします。 したがって、入力が86982のような場合、出力は「除算」になります。 繰り返し加算法を使用してこの問題を解決します。この方法では、数値から最後の桁を抽出し、2を掛けて、19で割り切れる2桁の数値が得られるまで、残りの数値に結果を加算します。 これを解決するには、次の手順に従います- 数値は100で割り切れますが、 last_digit:=number mod 10 数値:=(数値を10で割った値)のフロア値 数値:=数値+ last_digit * 2 数値mod19が0と同じ場合、Trueを

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

    ある番号が与えられ、その番号が17で割り切れるかどうかを確認する必要があるとします。 したがって、入力が99943のような場合、出力は除算されます。 この問題は、繰り返し減算法を使用して解決します。この方法では、数値の最後の桁を抽出し、17で割り切れる2桁の数値が得られるまで、数値から5回減算します。 これを解決するには、次の手順に従います- 数値は100で割り切れますが、 last_digit:=number mod 10 数値:=(数値を10で割った値)のフロア値 number:=number --last_digit * 5 数値mod17が0と同じ場合はtrueを返