Pythonで偶数桁の数字を数える方法
数値のリストが与えられたとき、桁数が偶数である数字の個数を数える問題を考えてみましょう。
例えば、配列が [12, 345, 2, 6, 7896] の場合を想定します。「12」は2桁、「7896」は4桁なので桁数が偶数です。一方、「345」「2」「6」は桁数が奇数のため対象外となります。したがって、この場合の出力は 2 になります。
解決のアプローチ
この問題は、以下の手順でシンプルに解くことができます。
- リストを受け取り、各整数を文字列に変換する
- 変換後の文字列の長さ(=桁数)が偶数であれば、カウントを1つ増やす
- すべての要素を処理したら、最終的なカウント値を返す
実装例
それでは、実際のコードを見てみましょう。
class Solution(object):
def findNumbers(self, nums):
str_num = map(str, nums)
count = 0
for s in str_num:
if len(s) % 2 == 0:
count += 1
return count
ob1 = Solution()
print(ob1.findNumbers([12, 345, 2, 6, 7897]))
コードのポイント
map(str, nums)によって、リスト内の各整数を一括して文字列へ変換しています。len(s) % 2 == 0の判定により、桁数が偶数かどうかを効率的にチェックできます。- 計算量は O(n) であり、リストの長さに比例して処理が完了するため、非常に効率的です。
入力
[12, 345, 2, 6, 7897]
出力
2
このように、Pythonでは整数を文字列として扱うことで、桁数の判定を直感的かつ簡潔に実装できます。ぜひ自分のコードにも応用してみてください。
-
Pythonプログラムで数の偶数の約数の合計を求める方法
この記事では、以下の問題文に対する解決策について詳しく解説します。 問題文:ある数が与えられたとき、その数のすべての偶数の約数(因子)の合計を求めて表示します。 アプローチ まず、与えられた数が奇数であるかどうかを確認します。奇数には偶数の約数が存在しないため、その場合は 0 を返します。 数が偶数である場合は、実際の計算に進みます。ここでのポイントは、20(つまり1)以外のすべての項を掛け合わせることで、偶数の約数の合計が得られるという点です。 偶数の約数からすべての奇数を取り除くために、20 に相当する「1」を無視します。この処理を行うことで、残るのは偶数の約数のみとなります。なお、2 は
-
Pythonで数の偶数の約数の合計を求めるプログラムの実装方法
本記事では、以下の問題文に対する解決策について学びます。問題文整数 n が与えられたとき、その数の偶数の約数(偶因子)の合計を求めることが課題です。この問題を解くには、まず奇数の約数をすべて除外する必要があります。入力された数が奇数の場合、偶数の約数は一つも存在しないため、直接 0 を返します。そうでない場合は、以下のコードで示すアプローチに従います。アルゴリズムの考え方このアプローチでは素因数分解を活用します。約数の合計は「各素因数の冪乗の和の積」として表せるという性質を利用します。偶数の約数のみを対象とするため、素因数 2 の部分については 20(つまり 1)を除外し、21 以降の項だけを