@timkin1

Как быстро найти остаток от суммы цифр?

Здравствуйте!

Программе подается число (возможно очень большое), нужно просуммировать все числа до этого числа и найти остаток от деления от числа, которое также подается программе. Если первым параметром дать большое число, то программа выполняется очень долго. Необходимо оптимизировать данный процесс. Как это можно сделать?
Заранее спасибо!
  • Вопрос задан
  • 242 просмотра
Пригласить эксперта
Ответы на вопрос 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Если первым параметром дать большое число, то программа выполняется очень долго.

А если вместо суммирования чисел воспользоваться формулой суммы арифметической прогрессии n * (n + 1) / 2 ?
Насколько велико "большое число"?
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
(1+2+...+n)%k = (n*(n+1)/2)%k
= ((n/2)%k * (n+1)%k)%k, для чётных n
= (n%k * ((n+1)/2)%k)%k, для нечётных n
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 13:31
10000 руб./за проект
19 апр. 2024, в 13:12
35000 руб./за проект
19 апр. 2024, в 13:06
6000 руб./за проект