Вопрос Сделать код более оптимизированным

Регистрация
6 Июн 2013
Сообщения
78
Репутация
0
Спасибо
0
Монет
0
count = 0

summ = 0



number = int(input())

for i in range(1, number + 1):

while summ < number:

summ += (i + count)

count += 1



if summ == number:

print(i)

break



summ, count = 0, 0
 
count = 0
summ = 0

number = int(input())
for i in range(1, number + 1):
while summ < number:
summ += (i + count)
count += 1

if summ == number:
print(i)
break

summ, count = 0, 0
Более оптимизированный код
 
Как-то так
109322707_db4d2f9d74aece8c932507adbcd71729_800.png

 
Можно добавить функцию для вычисления суммы арифметической прогрессии.

number = int(input())

def arithmetic_sum(n):
return n * (n + 1) // 2

i = 1
while arithmetic_sum(i) <= number:
if (number - arithmetic_sum(i)) % i == 0:
result = (number - arithmetic_sum(i)) // i
print(result)
break
i += 1
 

summ = 0
# это арифметическая прогрессия
number = int(input())
i = number-1
sum = number*i/2
print(i)
print(sum)

 
Назад
Сверху