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

1から100までのすべてのDisarium番号を出力するPythonプログラム


1から100までのすべてのdisarium番号を印刷する必要がある場合は、1から100の間で単純なループを実行し、すべての番号の長さを計算でき、位置の累乗に番号自体を掛けることができます。

それらが等しい場合、それはディサリウム番号と見なされます。

Disarium番号は、その桁の合計とそれぞれの位置の累乗が元の番号自体と等しい番号です。

以下は同じのデモンストレーションです-

def length_calculation(my_val):
   len_val = 0
   while(my_val != 0):
      len_val = len_val + 1
      my_val = my_val//10
   return len_val
def digit_sum(my_num):
   remaining = sum_val = 0
   len_fun = length_calculation(my_num)
   while(my_num > 0):
      remaining = my_num%10
      sum_val = sum_val + (remaining**len_fun)
      my_num = my_num//10
      len_fun = len_fun - 1
   return sum_val
ini_result = 0
print("The disarium numbers between 1 and 100 are : ")
for i in range(1, 101):
   ini_result = digit_sum(i)
   if(ini_result == i):
      print(i)

出力

The disarium numbers between 1 and 100 are :
1
2
3
4
5
6
7
8
9
89

説明

  • 2つのメソッドが定義されています。これらのメソッドは、数値の桁数を検索し、桁とその位置を掛けた積を取得するために使用されます。
  • 初期結果は0に割り当てられます。
  • ループは1から101までの数字(101を除く)で繰り返され、数字が数字と位置の数字の積と同じである場合、それはディサリウム番号と見なされます。
  • これはコンソールに出力として表示されます。

  1. 与えられた数のすべての素因数を出力する効率的なプログラムのためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数が与えられているので、与えられた数のすべての素因数を見つける必要があります。 この問題の効率的な解決策については、以下で説明します- 例 # Python program to print prime factors import math # prime def primeFactors(n):    # no of even divisibility    while n % 2 == 0:       print (2), &n

  2. 指定された文字列のすべての順列を出力するPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −文字列の可能なすべての順列を表示するために必要な文字列が与えられます。 次に、以下の実装のソリューションを見てみましょう- 例 # conversion def toString(List):    return ''.join(List) # permutations def permute(a, l, r):    if l == r:       print (toString(a))    e