Project Euler 52

Problem 52

  • 6 倍しても桁が変わらないので、最上位の桁は 1 のはず。
using System;
using System.Collections.Generic;
using System.Linq;

class PE052 {
    static void Main() {
        for (int i = 1; /* */; i++) {
            string s = "1" + i; // 6 倍しても桁数が同じなので、最上位は 1 となる
            int n = int.Parse(s);

            var cs = s.ToCharArray();
            Array.Sort(cs);

            bool found = true;
            for (int j = 2; j <= 6; j++) {
                var x = (n * j).ToString().ToCharArray();
                Array.Sort(x);
                if (!cs.SequenceEqual(x)) {
                    found = false;
                    break;
                }
            }

            if (found) {
                Console.WriteLine(n);
                break;
            }
        }
    }
}

Project Euler 52,53 - 桃の天然水 をみています。a の範囲がなぜそうなるのか理解できない……。