Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 18.03.2023
Сообщений: 60

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

21.07.2023, 19:38. Показов 3500. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ссылка на задачу:
https://stepik.org/lesson/7731... nit=775576

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

Формат ввода:

В первой строке вводится число a.

Во второй строке вводится число b.

Все числа натуральные. Каждое число не превышает 1001.

Формат вывода:

В единственной строке выведите измененные значения суммы и произведения через одиночный пробел.

Значения суммы и произведения не превышают 1 000 000 000.

Sample Input:

3
5
Sample Output:

12 60

мое решение:
Python
1
2
3
from math import *
a, b = int(input()), int(input())
print(sum(range(a, b + 1)), prod(range(a, b + 1)))
не прошел последний тест:
Failed test #5 of 5. Wrong answer
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.07.2023, 19:38
Ответы с готовыми решениями:

Сгенерировать 10 натуральных чисел в диапазоне от -50 до 50. Найти сумму четных и произведение положительных чисел
1. Сгенерировать 10 натуральных чисел в диапазоне от -50 до 50. Найти сумму четных и произведение положительных чисел.

Найти сумму и произведение натуральных чисел, не превышающих заданного значения N
Разработайте графическую схему алгоритма и напишите программу для решения следующей задачи: найти сумму и произведение натуральных...

Найти сумму и произведение всех натуральных чисел от 1 до 50, не используя формулы прогрессий.
Найти сумму и произведение всех натуральных чисел от 1 до 50, не используя формулы арифметической и геометрической прогрессии.

31
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
25.07.2023, 17:13
Студворк — интернет-сервис помощи студентам
Aael, вот правильно говорят - решение любой проблемы рождает минимум две новых...
Цитата Сообщение от Aael Посмотреть сообщение
print(sum(c) % m, prod(c) % m)
А почему остаток от деления результатов на максимально допустимое число, а не само это число, если результат вычисления его превосходит?
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
25.07.2023, 17:19
Лучший ответ Сообщение было отмечено Dagdarion как решение

Решение

вот, что это, как не тараканьи бега?

легко принято за верный ответ:
Python
1
2
3
4
5
6
7
8
9
10
11
a = int(input())
b = int(input())
 
s, p = 0, 1
lim = 1 << 31
while a <= b:
    s += a
    p *= a
    a += 1
 
print(s%lim, p%lim)
- относительно питона, бред сивой кобылы... а учитывая скудость условий, можно и прямо сказать, что вменяемость автора курса под большим сомнением...
4
964 / 485 / 241
Регистрация: 02.06.2016
Сообщений: 760
25.07.2023, 17:50
Цитата Сообщение от easybudda Посмотреть сообщение
А почему остаток от деления результатов на максимально допустимое число
Это я криво на питоне попытался изобразить 32'х разрядные числа.. там, вроде, в пятом тесте a=234 b=240 с выводом 1659 705150720, т.е. такой код должен зайти:
Python
1
print(s, 705150720 if p > 1_000_000_000 else p)
и совершенно случайно три старших бита в четырех байтах у этого числа оказались равны нулю (иначе отрицательное число нужно было бы писать в ответ), так что зашел бы модуль m=2^30, 2^31, 2^32. Карочи, там у "генератора" тестов 32'х разрядный int использовался и переполнение..
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1583
Регистрация: 06.09.2009
Сообщений: 27,134
25.07.2023, 17:50
YuS_2, а если отправить такое, пройдет или нет?

Python
1
2
3
4
5
6
7
8
9
10
a = int(input())
b = int(input())
 
s, p = 0, 1
while a <= b:
    s += a
    p = (p*a)%1000000000
    a += 1
 
print(s, p)
0
1 / 1 / 0
Регистрация: 18.03.2023
Сообщений: 60
25.07.2023, 17:58  [ТС]
вот такой вариант замутил, прокатило
Python
1
2
3
4
5
from math import *
a, b = int(input()), int(input())
x = range(min([a, b]), max([a, b]) + 1)
d = 2 ** 31
print(sum(x) % d, prod(x) % d)
Добавлено через 1 минуту
thyrex
не прошел 5 тест
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1583
Регистрация: 06.09.2009
Сообщений: 27,134
25.07.2023, 18:10
Посмотрел, под какие компиляторы можно отправлять решения. Подозрения подтвердились, что нужно было брать остаток от деления на каждом шаге вычисления произведения.

Добавлено через 9 минут
Цитата Сообщение от Dagdarion Посмотреть сообщение
thyrex
не прошел 5 тест
а если так?
Python
7
p = (p*a)%1000000001
0
1 / 1 / 0
Регистрация: 18.03.2023
Сообщений: 60
25.07.2023, 18:25  [ТС]
Цитата Сообщение от thyrex Посмотреть сообщение
PythonВыделить код
7
p = (p*a)%1000000001
не работает
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
25.07.2023, 18:39
Цитата Сообщение от thyrex Посмотреть сообщение
Подозрения подтвердились, что нужно было брать остаток от деления на каждом шаге вычисления произведения.
Это варианты одного и того же действия, да.
Правильнее было бы так:
Python
1
2
3
4
5
6
7
8
9
10
11
a = int(input())
b = int(input())
 
s, p = 0, 1
lim = 2147483648
while a <= b:
    s = (s + a) % lim
    p = (p * a) % lim
    a += 1
 
print(s, p)
Цитата Сообщение от thyrex Посмотреть сообщение
а если так?
Хоть в условии и указано число 109 и где-то здесь были задачи, в которых конкретно упоминалось, что вывод должен быть по модулю 109+7, но ни один из этих вариантов не проходит, там конкретная привязка к long int
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1583
Регистрация: 06.09.2009
Сообщений: 27,134
25.07.2023, 18:49
Цитата Сообщение от YuS_2 Посмотреть сообщение
lim = 2147483648
тогда скорее 2147483647, потому что в том же Паскале 2147483648 уже превышает longint.

Для суммы можно остаток не брать, там она максимально может быть чуть больше миллиона.
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
25.07.2023, 19:14
Цитата Сообщение от thyrex Посмотреть сообщение
тогда скорее 2147483647, потому что в том же Паскале 2147483648 уже превышает longint.
Да кто же его знает, что у них там в тестах... но 2147483647 не проходило, я пробовал...

Добавлено через 7 минут
при 2147483647, вывод получается:
Ввод:
1
1000

Вывод:
500500 2010224536

то бишь нет переполнения, но число произведения, больше 109
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38209 / 21142 / 4312
Регистрация: 12.02.2012
Сообщений: 34,755
Записей в блоге: 14
27.07.2023, 09:43
Мне ответила администрация stepik-а. В условии была ошибка. Сейчас она исправлена. Мой код прошел:

Python
1
2
3
4
5
6
7
from functools import reduce
a, b = int(input()),int(input())
if b < a:
    print(0,1)
else:
    s, p = reduce(lambda acc,x : (acc[0]+x, acc[1]*x),range(a,b+1),(0,1))
    print(s,p)
2
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
27.07.2023, 12:51
Цитата Сообщение от Catstail Посмотреть сообщение
В условии была ошибка.
Там не только в условии была ошибка, но и в тестах... но, видимо, поправили и их, теперь проходят решения без этой "звершуки": 1<<31.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.07.2023, 12:51

Даны n натуральных чисел. Найти сумму и произведение элементов, кратных 3 и 5. Составить блок-схему и программу
Даны n натуральных чисел. Найти сумму и произведение элементов, кратных 3 и 5. Составить блок-схему и программу.

Вычислить произведение и сумму натуральных чисел
Вычислить произведение и сумму натуральных чисел, начинаю с 12 до 2*N с шагом 2

Разложите число 1945 в сумму натуральных чисел таким образом, чтобы произведение этих чисел было максимальным
Разработайте алгоритм решения задачи: Разложите число 1945 в сумму натуральных чисел таким образом, чтобы произведение тих чисел было...

Вычислить сумму и произведение двузначных натуральных чисел
..vsemprivet Написать программу вычисляющую сумму и произведение двузначных натуральных чисел

Найти сумму и произведение полученных чисел. Вывести на чистый экран строку S, ее длину, сумму и произведение
Запросить у пользователя строку S, состоящую из цифр. Преобразовать каждый символ – цифру в число. Найти сумму и произведение полученных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru