LoginSignup
0
0

More than 1 year has passed since last update.

【Project Euler】Problem 52: 並び替えの倍数

Posted at
  • 本記事はProjectEulerの「100番以下の問題の説明は記載可能」という規定に基づいて回答のヒントが書かれていますので、自分である程度考えてみてから読まれることをお勧めします。

問題 52. 並び替えの倍数

原文 Problem 52: Permuted multiples

問題の要約:ある数の2x,3x,4,x5,x6の数が全部並び替えると元の数と同じになる最小の数を求めよ

並び替えて同じがどうかは「Problem 49: 並び替え素数」で作ったisPermSameを使います。

def isPermSame(n1, n2):
  return ("".join(sorted(str(n1)))) == ("".join(sorted(str(n2))))

def isPermMulSame(n, m):
  for mul in range(2,m+1):
    if not isPermSame(n, n*mul):   # if not permutation same 
      return False
  return True

for n in range(100,167000+1):
  if isPermMulSame(n, 6):
    break

print(f"Answer: {n}")

(開発環境:Google Colab)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0