1. paizaラーニングトップ
  2. レベルアップ問題集
  3. 二重ループメニュー(言語選択)
  4. 問題一覧 Haskell(Beta)編
  5. 二重ループ:活用編 三角形の探索 Haskell(Beta)編

二重ループメニューのサムネイル
二重ループ:活用編 三角形の探索 Haskell(Beta)編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

整数 N が与えられるので、三角形の三辺の長さの和が N であり、全ての辺の長さが整数であるような直角三角形が存在するかどうかを判定してください。なお、直角三角形の斜辺 a と他の二辺 b , c の間には次のような三平方の定理が成り立ちます。

a ^ 2 = b ^ 2 + c ^ 2


・ ヒント
三辺の長さの和が N であるような全ての三角形の三辺 a , b , c の組み合わせのうち、三平方の定理を満たすものが 1 つでもあれば "YES" , それ以外の場合は "NO" が答えとなります。全ての三辺の場合を全列挙することができれば三平方の定理を満たすかの判定をすることで答えを求めることができます。

入力される値

N


・ 三角形の三辺の長さの和 N が 1 行で与えられます。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

条件を満たすような直角三角形が存在する場合は "YES" を、存在しない場合は "NO" を 1 行で出力してください。
出力の末尾には改行を入れてください。

条件

すべてのテストケースにおいて、以下の条件をみたします。
・ 3 ≦ N ≦ 1000

入力例1

12

出力例1

YES

入力例2

93

出力例2

NO

入力例3

864

出力例3

YES

入力例4

999

出力例4

NO

問題一覧へ戻る

ページの先頭へ戻る