【初心者】pythonで0から Project Euler を解いてみた12
今回はeuler12問目を解いていきます!
問題はこちらへ!!
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2012
今回は三角数の約数が500を超える一番小さい三角数は何ですか的な問題ですねー。。。
じゃ、頑張って解いていきますか!
コード
import sympy
n = 0
while True:
n += 1
Tri = n * (n + 1) // 2
#print(Tri)
div_cout = sympy.divisor_count(Tri)
if div_cout >= 500:
print(Tri)
break
import sympy
n = 0
while True:
n += 1
Tri = n * (n + 1) // 2
#print(Tri)
div_cout = sympy.divisor_count(Tri)
if div_cout >= 500:
print(Tri)
break
最初に三角数とは何ぞやと思う人のために少し解説!
今絵にしたのは三角関数の3項目の6です
nに3を入れてもらうと答えは6になります
これは高さ(段数)×(段数+1)÷2になります
絵のように二つの三角形を使い四角形を作りその半分が三角数の項になるということです
まず私はwhile True:で無限ループを作り問題の答えになる数を探しに行く旅に出ました。
次にsympyのdivisor_countを使い約数の数を出します
次のif文でそのdiv_coutが500より大きいときにループを止めるコードを書いて終わりです!!
Author And Source
この問題について(【初心者】pythonで0から Project Euler を解いてみた12), 我々は、より多くの情報をここで見つけました https://qiita.com/projecteuler/items/a84922f66c8c02a58861著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .