C#でプロジェクトオイラーを解く(問題9「特別なピタゴラス数」)

プロジェクトオイラー
Pocket

どーも、みつおです。

 

問題

ピタゴラス数(ピタゴラスの定理を満たす自然数)とは a < b < c で以下の式を満たす数の組である.

a^2 + b^2 = c^2

例えば, 32 + 42 = 9 + 16 = 25 = 52 である.

a + b + c = 1000 となるピタゴラスの三つ組が一つだけ存在する.
これらの積 abc を計算しなさい.

出典:Problem9

解答

using System;

namespace Problem9
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Solve());
            Console.ReadLine();
        }

        static double Solve()
        {
            //aのループ
            for (int a = 0; a < 1000; a++)
            {
                //bのループ
                for (int b = 0; b < 1000; b++)
                {
                    //a^2+b^2の計算
                    double product = a * a + b * b;

                    //c^2 = a^2 + b^2から√cの値を求める
                    double c = Math.Sqrt(product);

                    // a < b < c かつ a + b + c == 1000を判定 マッチすれば、積 abc を返す
                    if (a < b && b < c && (a + b + c == 1000)) return a * b * c;
                }
            }

            return 0;
        }
    }
}

 

出力

31875000

コメント

タイトルとURLをコピーしました