Skip to content

05.10.2011

Задача №6, 7 – projecteuler.net

Сумма квадратов первых десяти натуральных чисел

12 + 22 + … + 102 = 385
Квадрат суммы первых десяти натуральных чисел

(1 + 2 + … + 10)2 = 552 = 3025
Следовательно, разность между суммой квадратов и квадратом суммы первых десяти натуральных чисел составляет 3025 385 = 2640.

Найдите разность между суммой квадратов и квадратом суммы первых ста натуральных чисел.


Как то я опять вернулся к полному перебору, ну да ладно:

        static int summakvadr(int n){
            int otv = 0;
            for (int i = 1; i <= n; i++)
            {
                otv += i * i; 
            }
            return otv;
        }
        static int kvadrsummy(int n)
        {
            int otv = 0;
            for (int i = 1; i <= n; i++)
            {
                otv += i;
            }
            return otv * otv;
        }
        static void Main(string[] args)
        {
            Console.WriteLine(kvadrsummy(100)- summakvadr(100));
            Console.ReadKey();
        }

Выписав первые шесть простых чисел, получим 2, 3, 5, 7, 11 и 13. Очевидно, что 6-ое простое число — 13.

Какое число является 10001-ым простым числом?

Решето Эратосфена уже написано=), остается найти 1001 «false».

        static bool[] Prost(int n) // метод для нахождения простых чисел с помощью решета Эратосфена
        {
            bool[] m = new bool[n + 1];
            for (int i = 2; i <= n; ++i)
            {
                if (m[i] == false)
                {
                    for (int j = 1; i + i * j <= n; ++j)
                    {
                        m[i + i * j] = true;
                    }
                }
            }
            return m;
        }
        static void Main(string[] args)
        {
            int res=0;
            bool[] m = Prost(10000000);
            int i;
            for ( i = 2; i < m.Length; ++i)
            {
                if (m[i]==false) ++res;
                if (res == 10001) { Console.WriteLine(i); break; }
            }
            Console.ReadKey();
        }

Share your thoughts, post a comment.

(required)
(required)

Note: HTML is allowed. Your email address will never be published.

Subscribe to comments