【Project Euler】No4 : Largest palindrome product 解答例【Python】

【Project Euler】No4 : Largest palindrome product 解答例【Python】

はじめに

コジマです。

https://projecteuler.net/
の4問目を解いていきます。

問題

問題4

A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.

Find the largest palindrome made from the product of two 3-digit numbers.

和訳(意訳)
回文数はどちらからでも同じに読める数です。2つの2桁の積で求まる最大の回文数は9009 = 91 × 99です。

2つの3桁の積で求まる最大の回文数を求めよ。

解答例

回文数の問題なので、
回文数の判定のために文字列として処理して逆順に表示したものと同じになるかどうかを見ました。

また、最大を求めるので、大きい数字から下がっていきながら探索をしました。

# おまじない
import numpy as np
import math

plindromes = []

for a in range(999, 99, -1):
    for b in range(999, 99, -1):
        result = str(a * b)
        if result == result[::-1]:
            plindromes.append(int(result))

# 答え
print("最大の回文数: {}".format(max(plindromes)))

さいごに

解答はgithubにも上げています。
https://github.com/kojimanotech/project_euler/blob/master/0004_Largest_palindrome_product.ipynb

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

もっと学びたい人はこちら

Python、機械学習をもっと学びたいという人のためにおすすめのUdemy講座を紹介いたします!

Pythonの基本文法を押さえたい方はこちらの動画がおすすめです。
エンジニアになりたいと思って駆け出した方がPythonを選んだときはこの講座から始めるとよいと思います。
Python 3 エンジニア認定基礎試験の対策にもなります。
はじめてのPython 少しずつ丁寧に学ぶプログラミング言語Python3のエッセンス

プログラムの基礎が分かる方で機械学習に興味がある方はこちらがおすすめです。
SIGNATEという日本版Kaggleのサービスを実際に使用してハンズオン形式でデータ分析・機械学習を学ぶことができます。
もちろんこの動画だけで特級のデータサイエンティストになれるわけではないですが、機械学習の門を叩くにはとても良い講座だと思います。
【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門

Pythonのライブラリで必ず押さえておきたいのがNumpy, Pandas, Matplotlibの3つ。
この3つを網羅的に学ぶことができる講座です。
英語の講座ですが、わかりやすい英語ですし、ソースコードメインで解説しているので
ソースコードを一緒に手を動かしながら学べば十分理解することができます。
機械学習を使わない人にもおすすめの講座です。
2021 NumPy, Pandas and Matplotlib A-Z™: for Machine Learning

気になった人はぜひ見てみてくださいね!

以上、コジマでした。


Pythonカテゴリの最新記事