コード例 #1
0
ファイル: Problem69.cs プロジェクト: JakeBayer/ProjectEuler
        public string Run()
        {
            var    phi = Totient.UpTo(ONE_MILLION);
            double max = 0;
            int    idx = 0;

            for (int i = 1; i <= ONE_MILLION; i++)
            {
                var ratio = (double)i / (double)phi[i];
                if (ratio > max)
                {
                    max = ratio;
                    idx = i;
                }
            }
            return(idx.ToString());
        }
コード例 #2
0
        public string Run()
        {
            var    phis     = Totient.UpTo(TEN_MILLION);
            double minRatio = double.MaxValue;
            long   minN     = 0;

            for (long i = 2; i <= TEN_MILLION; i++)
            {
                if (i.IsPermutationOf(phis[i]))
                {
                    var ratio = (double)i / (double)phis[i];
                    if (ratio < minRatio)
                    {
                        minRatio = ratio;
                        minN     = i;
                    }
                }
            }
            return(minN.ToString());
        }
コード例 #3
0
ファイル: Problem72.cs プロジェクト: JakeBayer/ProjectEuler
        public string Run()
        {
            var phi = Totient.UpTo(ONE_MILLION);

            return(phi.Skip(2).Sum().ToString());
        }