Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.12.2020
Сообщений: 10
1

Вывести ближайшее к числу N совершенное число

18.11.2022, 08:38. Показов 1045. Ответов 5

Author24 — интернет-сервис помощи студентам
Есть код, который выводит совершенные числа на промежутке. Нужно сделать так, чтобы он выводил только ближайшее совершенное число, а не все подряд.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
y = int(input('Укажите верхнюю границу: '))
x = int(input('Укажите нижнюю границу: '))
 
for i in range(x,y):
    s = 1
    j=2
    while(j*j<=i):
        if i % j == 0:
            s += j
            k=i//j
            if j !=k:
                s+=k
        j+=1
    if s == i:
        print(i)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2022, 08:38
Ответы с готовыми решениями:

Найти ближайшее простое число к заданному с клавиатуры числу P
Найти ближайшее простое число к заданному с клавиатуры числу P.

Вывести восьмое совершенное число
Здравствуйте. Не получается написать вывести восьмое совершенное число. Подскажите что не так:...

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

Найти ближайшее совершенное число
Добрый день. Помогите пожалуйста написать данную программу: &quot;Задано целое число N. Найти...

Задано целое число N. Найти ближайшее к нему совершенное число
Задано целое число N. Найти ближайшее к нему совершенное число

5
Эксперт Python
4290 / 1841 / 330
Регистрация: 18.01.2021
Сообщений: 3,405
18.11.2022, 09:03 2
break после принта
0
1044 / 314 / 77
Регистрация: 16.03.2020
Сообщений: 955
18.11.2022, 09:21 3
Цитата Сообщение от infinity837 Посмотреть сообщение
Python
1
2
if s == i:
    print(i)
А ещё лучше не после принта, а
Python
1
2
3
4
while smth:
    if s == i: break
# и уже вне цикла
print(i)
0
0 / 0 / 0
Регистрация: 20.12.2020
Сообщений: 10
18.11.2022, 09:49  [ТС] 4
Выдает ошибку

Укажите верхнюю границу: 30
Укажите нижнюю границу: 0
Traceback (most recent call last):
File "C:\Users\chang\Desktop\pyt\untitled-1.py", line 14, in <module>
while smth:
builtins.NameError: name 'smth' is not defined
0
1044 / 314 / 77
Регистрация: 16.03.2020
Сообщений: 955
18.11.2022, 13:17 5
infinity837, так это не ответ, это исправление вашего кода. Сделайте
Python
1
if s == i: break
на 14 строчке вашего кода, а 15-ой, вне цикла while выводите переменную i. Так всё будет работать

Добавлено через 25 секунд

Не по теме:

Может английский перед питоном стоит поучить?

0
398 / 255 / 98
Регистрация: 04.11.2022
Сообщений: 378
18.11.2022, 14:07 6
Лучший ответ Сообщение было отмечено infinity837 как решение

Решение

infinity837,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def is_perfect(i):
    s = 1
    j=2
    while(j*j<=i):
        if i % j == 0:
            s += j
            k=i//j
            if j !=k:
                s+=k
        j+=1
    return s==i
 
n = int(input('n= '))
for i in range(1, 2**31):
    if is_perfect(n+i):
        print(n+i)
        break
    elif n-i > 1 and is_perfect(n-i):
        print(n-i)
        break
1
18.11.2022, 14:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2022, 14:07
Помогаю со студенческими работами здесь

Вывести ближайшее к заданному числу N простое число; если таких числа два, то вывести меньшее
Помогите пожалуйста решить задачу! Дано одно целое число N. Вывести ближайшее к заданному числу N...

Дано натуральное число N. Вывести на экран: ближайшее число, меньшее данного, сумма цифр которого кратна числу С
Дано натуральное число N. Вывести на экран: ближайшее число, меньшее данного, сумма цифр которого...

Задано натуральное число N Найти ближайшее число Фибоначчи к заданному числу
Написать программу на языке С#, которая решает поставленную задачу с использованием цикла do/while ...

Найти ближайшее целое число к данному числу, которое делится на второе число без остатка
Пример 1. Есть числа 35 и 14. 35 не делится на 14 без остатка, поэтому ищем ближайшее целое число...

Найти ближайшее число к заданному числу
Найти ближайшее число к заданному числу(с клавиатуры), меньше его, обладающее следущими свойствами:...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru