Составьте программу для нахождения среднего арифметического значения всех делителей заданного натурального числа

  • 18
Составьте программу для нахождения среднего арифметического значения всех делителей заданного натурального числа N, которые кратны 3. Выведите 0, если таких делителей нет. (Учтите само число и единицу в число делителей.) Формат входных данных: входной файл содержит число N (1≤N≤1000). Формат выходных данных: выведите искомую величину с точностью не менее 10^−9. Пример: Вход 6. Выход 4.5000000000.
Язык
1
Хорошо, я могу помочь вам с этой задачей. Для начала, давайте разберемся, как найти все делители числа N, которые кратны 3.

Для этого вам потребуется написать программу на языке программирования. Давайте рассмотрим псевдокод для данной программы:

1. Прочитайте входное число N из файла.
2. Инициализируйте переменные "сумма" и "количество делителей", обе равны 0.
3. Для каждого числа i от 1 до N включительно, выполните следующие шаги:
- Если N делится на i и i кратно 3, то
* Увеличьте сумму на i.
* Увеличьте количество делителей на 1.
4. Если количество делителей равно 0, выведите 0.
5. Иначе, вычислите среднее арифметическое как сумма делителей, деленная на количество делителей.
6. Выведите искомую величину с точностью не менее 10^−9.

Теперь, чтобы добиться точности не менее 10^−9, вы можете использовать форматирование вывода числа с помощью функции printf или подобной функции в языке программирования, котором вы пишете программу. Вот как выглядит программа на языке Python:

python
N = int(input("Введите число N: "))
сумма = 0
количество_делителей = 0

for i in range(1, N + 1):
if N % i == 0 and i % 3 == 0:
сумма += i
количество_делителей += 1

if количество_делителей == 0:
print("0")
else:
среднее = сумма / количество_делителей
print(f"{среднее:.10f}")


Эта программа считывает число N с помощью функции input, а затем выполняет описанные выше шаги. В конце она выводит искомую величину с точностью не менее 10^−9 с помощью форматирования строки. Вы можете запустить эту программу и ввести число N, чтобы получить ответ.