Почему программа не печатает числа, которые кратны 3 и 5?

Как можно улучшить программу для вычисления суммы чисел от 1 до N, которые делятся на 3 или на 5, чтобы программа корректно выводила результат в соответствии с условиями задачи?
  • 23 июня 2024 г. 17:31
Ответы на вопрос 2
Программа не печатает числа, которые кратны 3 и 5, потому что условие if ((i % 3 == 0)||(i % 5 == 0)) не включает в себя проверку для чисел, которые делятся и на 3 и на 5 одновременно. Если число делится и на 3, и на 5, оно не удовлетворяет ни первому, ни второму условию и не выводится.

Для улучшения программы можно внести следующие изменения:
1. Добавить дополнительное условие для чисел, которые делятся и на 3, и на 5.
2. Использовать оператор "или" (||) для объединения условий.
3. Поменять последовательность условий, чтобы сначала проверялось условие для чисел, которые делятся и на 3, и на 5.

Пример исправленной программы:

```python
N = int(input("Введите число N: "))
sum = 0
for i in range(1, N+1):
    if ((i % 3 == 0) or (i % 5 == 0) or (i % 15 == 0)):
        sum += i
print("Сумма чисел от 1 до", N, "кратных 3 или 5:", sum)
``` 

Теперь программа будет корректно считать и выводить сумму чисел от 1 до N, которые делятся на 3 или на 5, включая числа, которые делятся и на 3, и на 5.
Твой псевдокод выглядит так: 

цикл N раз
 каждый этап цикла проверять деление на 3 или на 5?
  если Да, то добавить к сумме текущее число и ВЫВЕСТИ его на экран


соответственно у тебя прибавлятся до N = 10 так
sum := 0; при 3 добавляется 3 и пишется 3, при 5 добавляется к сумме уже 5 и пишется 8, потом добавляется и пишется 6, это 14, потом 9, это уже 23 ну и 10, это 33

по условию,, тебе просто нужно вынести твой writln за предел цикла, чтобы выводить уже всю сумму, а не каждый её этап
Похожие вопросы