Я бы сделала сравнение вычислений
этой суммы по формуле и циклом:
from time import time
while True:
try:
a, b = map(int, input('a b » ').split())
if a > b: a, b = b, a
t = time()
s = (b * (b + 1) * (2 * b + 1) - a * (a - 1) * (2 * a - 1)) // 6
T = time()
c = T - t
S = 0
for i in range(a, b + 1): S += i**2
τ = time()
d = τ - T
print('По формуле: %d (%f)' % (s, c))
print('Циклом: %d (%f)' % (S, d))
print('Циклом медленнее в %f раз' % (d / c))
except: print('Ошибка ввода!')

А раз такие результаты, то надо оставить только что-то наиболее рациональное:
a, b = map(int, input('a b » ').split())
if a > b: a, b = b, a
print((b * (b + 1) * (2 * b + 1) - a * (a - 1) * (2 * a - 1)) // 6)
Ксения РайтВысший разум (105655)
1 месяц назад
Хм, кода для сравнения в ответе почему-то не видно! Тогда ещё раз:
from time import time
while True:
try:
a, b = map(int, input('a b » ').split())
if a > b: a, b = b, a
t = time()
s = (b * (b + 1) * (2 * b + 1) - a * (a - 1) * (2 * a - 1)) // 6
T = time()
c = T - t
S = 0
for i in range(a, b + 1): S += i**2
τ = time()
d = τ - T
print('По формуле: %d (%f)' % (s, c))
print('Циклом: %d (%f)' % (S, d))
print('Циклом медленнее в %f раз' % (d / c))
except: print('Ошибка ввода!')
Ксения РайтВысший разум (105655)
1 месяц назад
from time import time
while True:
try:
a, b = map(int, input('a b » ').split())
if a > b: a, b = b, a
t = time()
s = (b * (b + 1) * (2 * b + 1) - a * (a - 1) * (2 * a - 1)) // 6
T = time()
c = T - t
S = 0
for i in range(a, b + 1): S += i**2
τ = time()
d = τ - T
print('По формуле: %d (%f)' % (s, c))
print('Циклом: %d (%f)' % (S, d))
print('Циклом медленнее в %f раз' % (d / c))
except: print('Ошибка ввода!')
до b
включительно.