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

数値とその桁の合計gcdが1より大きい最も近い整数を検索するC++プログラム


数値Nがあるとします。正の整数xの関数gcdSum(x)を考えます。これは、その整数とその桁の合計のgcdです。 gcdSum(x)> 1となるような、最小の整数x>=nを見つける必要があります。

したがって、入力がN =31の場合、31のgcdと(3 + 1)は1であるため、出力は33になります。32のgcdと(3 + 2)は1であり、33のgcdと( 3 + 3)は3です。

ステップ

これを解決するには、次の手順に従います-

for initialize i := n, when i <= n + 2, update (increase i by 1), do:
   jml := 0
   x := i
   while x > 0, do:
      jml := jml + x mod 10
      x := x / 10
   if gcd of i and jml is not equal to 1, then:
      return i
return 0

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;

int solve(int n) {
   for (long i = n; i <= n + 2; i++) {
      long jml = 0;
      long x = i;
      while (x > 0) {
         jml += x % 10;
         x /= 10;
      }
      if (__gcd(i, jml) != 1) {
         return i;
      }
   }
   return 0;
}
int main() {
   int N = 31;
   cout << solve(N) << endl;
}

入力

31

出力

33

  1. 数の奇数因子の合計を見つけるためのC++プログラム

    正の整数で与えられ、タスクは、数値の奇数因子を生成し、与えられた奇数因子の合計を見つけることです。 例 Input-: number = 20 Output-: sum of odd factors is: 6 Input-: number = 18 Output-: sum of odd factors is: 13 したがって、結果=1 + 5 =6 以下のプログラムで使用されるアプローチは次のとおりです − その数の奇数因子の合計を計算するための数を入力します 数字0と2は両方とも偶数であるため無視し、数字1は奇数であるため保存します ループを3から数値の平方根まで開始し

  2. 完全な平方であり、数値のすべての桁の合計が10未満である範囲内のすべての数値を検索するPythonプログラム

    完全な平方が存在する範囲内のすべての数値を検索する必要があり、数値の桁の合計が10未満の場合、リスト内包表記が使用されます。 以下は同じのデモンストレーションです- 例 lower_limit = int(input(“Enter the lower range: “)) upper_limit = int(input(“Enter the upper range: “)) my_list = [] my_list = [x for x in range(lower_limit,upper_limit+1) if (int(x**0.5))**