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

数のより良い除数を見つけるためのPythonプログラム


数nがあるとします。これらの条件に基づいて、どちらがより良いnの約数を見つける必要があります。2つの数pとqがあり、数字の合計が大きい方がもう一方よりも優れていると呼ばれます。桁の合計が同じ場合は、数値が小さいほど良いです。

したがって、入力がn =180の場合、除数は[1、2、3、4、5、6、9、10、12、15、18、20、30、36、 45、60、90、180]。したがって、桁の合計が最大になる数は[9、18、36、45、90、180]ですが、その値が小さいほど9の方が適しています。

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

  • div:=1、md:=1
  • 2からnの範囲のiについては、
    • k:=i
    • n mod i> 0の場合、
      • 次の反復に進む
    • s:=0
    • k> 0の場合、do
      • s:=s + k mod 10
      • k:=k / 10
    • s> mdの場合、
      • md:=s
      • div:=i
  • return div

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

def solve(n):
   div = 1
   md = 1
   for i in range(2, n + 1):
      k = i
      if n % i > 0:
         continue
      s = 0
      while k > 0:
         s += k % 10
         k /= 10
      if s > md:
         md = s
         div = i

   return div

n = 180
print(solve(n))

入力

180

出力

9

  1. リスト内の最小数を見つけるPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。リストで利用可能な最小の番号を表示する必要があります ここでは、リストを並べ替えて最小の要素を取得するか、組み込みのmin()関数を使用して最小の要素を取得できます。 次に、以下の実装の概念を観察しましょう- 例 list1 = [101, 120, 104, 145, 99] # sorting using built-in function list1.sort() print("Smallest element is:", list1[0]) 出力 Smal

  2. Pythonプログラムで数の偶数因子の合計を見つける

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数値が与えられているので、数値のすべての偶数因子の合計を表示する必要があります。 アプローチ 数値が奇数かどうかを確認し、偶数の因子がないため、0を返します。 数が偶数の場合、計算を実行します。 20を除く他のすべての項は、偶数の因数の合計を生成するために乗算されます。 偶数因子のすべての奇数を削除するために、1である20を無視します。このステップの後、偶数因子のみを取得しました。 2は私たちが利用できる唯一の素数であることに注意してください。 次に、以下の実装を見てみましょう- 例 # math