Проект Эйлера - Задача 6

Разность между суммой квадратов и квадратом суммы

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

Квадрат суммы первых десяти натуральных чисел равен
(1 + 2 + ... + 10)2 = 552 = 3025

Следовательно, разность между суммой квадратов и квадратом суммы первых десяти натуральных чисел составляет 3025 − 385 = 2640.

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

Моё решение на Python:
Хорошая и приятная задача. Но и здесь есть над чем подумать. В начале я её решил с помощью двух форов... а можно было еще и листы написать.

Две переменные. Сумма квадратов и квадрат суммы. Задаём предел от 1 и до 101 (101 не учитывается). Для проверки можно задать предел от 1 до 11 - получим 2640 как в примере.
sum1 = 0 sum2 = 0 for x in range(1, 101): sum1 += x ** 2 sum2 += x sum2 **= 2 total = sum2 - sum1 print(total)

В итоге прошраммка выдаёт 25164150.

Я так решил.

7 комментариев:

  1. Я решил так.

    sqr1 = list(range(1, 101))
    sqr2 = [n ** 2 for n in sqr1]
    sumsqr = sum(sqr2)

    sqr3 = list(range(1, 101))
    sqrsum = sum(sqr3)
    sqrsum *= sqrsum

    diff = sqrsum - sumsqr
    print(diff)

    ОтветитьУдалить
  2. lister = [i**2 for i in range(101)]
    lister2 = [i for i in range(101)]
    print((sum(lister2))**2 - sum(lister))

    не проще?

    ОтветитьУдалить
  3. a = int(input('Введите число: '))
    b = int(input('Введите число: '))
    c = []
    d = []
    for i in range(a):
    i = i**2
    c.append(i)
    for j in range(b):
    d.append(j)

    _sum_=(sum(c))
    square=(sum(d)**2)
    print(square - _sum_)

    мое решение

    ОтветитьУдалить
  4. d = 0
    for f in range(1, 101):
    d += f ** 2
    g = 0
    for t in range(1, 101):
    g += t
    i = g**2 - d
    print(i, d)

    ОтветитьУдалить
  5. num1=[]
    num2=[]
    sum_num1=0
    sum_num2=0
    for i in range(1, 101):
    num1.append(i**2)
    num2.append(i)
    if i == 100:
    for k in range(100):
    sum_num1+=num1[k]
    sum_num2+=num2[k]
    sum_num2**=2
    diff=sum_num2-sum_num1
    print(diff)

    Мое решение: 14 строк

    ОтветитьУдалить
  6. как я оказывается люблю все усложнять...
    a=[]
    for i in range(1, 101 ):
    i**=2
    a.append(i)
    sum1=sum(a)
    b=[]
    n=0
    while n <= 99:
    n+=1
    b.append(n)
    sum2=sum(b)**2
    print(sum2-sum1 )

    ОтветитьУдалить