Дружественные числа питон решение

Поиск дружественного числа

— Два натуральных числа называют дружественными, если каждое из них
равно сумме всех делителей другого, кроме самого этого числа. Найти все
пары дружественных чисел, лежащих в диапазоне от 200 до 300.

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

1 2 3 4 5 6 7 8 9 10 11 12
limit = 300 pairs = {} def divisors_sum(number): return sum(x for x in range(1, (number//2)+1) if number%x == 0) for i in range(200, limit+1): aggr = divisors_sum(i) if i == divisors_sum(aggr) and i != aggr : if i and aggr not in pairs: pairs[i] = aggr print(pairs)

Поля дружественного класса
есть примерно такой код class ClientAuthorization < public: int count; //считается в.

Использование дружественного класса
Нужно что бы классы стали общее дружеские вложенные классы поидее в книге написано можно добавить.

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

Вызов функций дружественного класса
У меня есть 2 класса Tree и Dictionary,которые являются друзьями class Tree; class Dictionary.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
def get_divisors_sum(num): divisors_sum = 0 for divisor in range(1, num): if num % divisor == 0: divisors_sum += divisor return divisors_sum number_list = [] for num in range(200, 300+1): if num not in number_list: divisors_sum = get_divisors_sum(num) if 200  divisors_sum  300 and num != divisors_sum and num == get_divisors_sum(divisors_sum): number_list.append(divisors_sum) print(num, divisors_sum)

GorodetskiyKP,
Если добавлять оба делителя, то в строке 3 можно перебирать только до корня из num.
В строке 13 нужно отбросить числа, которые меньше num. Для них мы уже считали. Тогда можно обойтись без строки 11.

def divisors_sum(n): sqrt = int(n**0.5) return (n, sum(i + n//i for i in range(2, sqrt) if n % i == 0) + 1 + (sqrt if sqrt*sqrt == n else 0)) def friends(low, high): return [(n1,n2) for n1,n2 in map(divisors_sum, range(low, high)) if n1n2high and n1==divisors_sum(n2)[1]] print(friends(200, 300))

Источник

Найти все пары натуральных дружественных чисел, меньших 10000

Составьте программу для решения задачи. Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого (само другое число в качестве делителя не рассматривается). Например, 220 (1+2+4+5+10+11+20+22+44+55+110=284) и 284 (1+2+4+71+142=220) – дружественные числа. Пары необходимо выводить по одной в строке, разделяя пробелами.

Найти все пары натуральных дружественных чисел, меньших 10 000.

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

Найти все пары натуральных дружественных чисел
Числовая дружба Составьте программу для решения задачи. Два натуральных числа называются.

Найдите все пары дружественных чисел, каждое из которых меньше 10000
Дружественные числа – это два натуральных числа, таких, что сумма всех делителей одного числа.

Найти все пары «дружественных» чисел, которые не больше данного числа N
Два натуральных числа называются «дружественными», если каждое из них равно сумме всех делителей.

Найти все пары натуральных дружественных чисел, меньших 10 000
Ограничение времени 300 секунд Ограничение памяти 64Mb Ввод стандартный ввод или input.txt.

def sumfact(n): return sum(i for i in range(1, n) if n % i == 0) for i in range(10000): s = sumfact(i) if s > i and sumfact(s) == i: print(i, s)
for n in range(10000): s = sum(i for i in range(1, n) if n % i == 0) if s > n and sum(i for i in range(1, s) if s % i == 0) == n: print(n, s)

orAnd,
s = sum(i for i in range(1, n) if n % i == 0)
Вот это конструкцию мы не проходили, конкретнее «sum» и что if. ( после цикла , мы изучали только отдельно ).

CyberGame, понятно, а я учусь на заочке, нам задали многомерные списки но материал по ним не дали, ищите сами. Поэтому решаю задачи по тому что нашёл.

Vaguk, да я вообще хз, иногда задание не понятно и хз как реализовать, а у препода спросить нельзя ибо это доп задания.

print(sum(i for i in range(1, n) if n % i == 0))
result = 0 for i in range(1, n): if n % i == 0: result += i print(result)

если задание необходимо выполнить «в стиле pascal», то можешь всё позаменять. Надеюсь это не вызовет сложностей.

1 2 3 4 5 6 7 8 9 10 11 12
for n in range(10000): s = 0 for i in range(1, n): if n % i == 0: s += i if s > n: result = 0 for i in range(1, s): if s % i == 0: result += i if result == n: print(n, s)

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

Найти все пары «дружественных» чисел, которые не больше данного числа N
Два натуральных числа называются «дружественными», если каждое из них равно сумме всех делителей.

Найти все пары «дружественных» чисел, которые не больше данного числа N
Два натуральных числа называются «дружественными», если каждое из них равно сумме всех делителей.

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

Найти все пары натуральных дружественных чисел, меньших 50000
Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей.

Найти все пары натуральных дружественных чисел, меньших 50000
Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей.

Найти все пары натуральных дружественных чисел, меньших 50 000
Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей.

Источник

Как найти дружественные числа в Python

В этом уроке мы узнаем, как найти дружественные числа в Python. Во-первых, разберемся, что это такое и как их можно использовать.

Дружественные числа – это два разных числа, связанных таким образом, что сумма собственного делителя каждого из них равна другому числу.

Другими словами, сумма всех собственных делителей x и сумма всех собственных делителей y должна быть равна противоположному числу.

Предположим, у нас есть два числа, 123 и 426, нам нужно найти все правильные делители 123 и 426; затем мы суммируем собственный делитель 123 и то же самое с 426.

Сумма собственного делителя 123 равна 426, а собственного делителя 426 – 123.

Как проверить, дружны ли два числа в Python?

Ниже приведены шаги, чтобы определить, являются ли два числа дружественными или нет:

  • Сначала возьмите два целых числа в качестве входных данных от пользователя.
  • Получите правильный делитель обоих чисел и просуммируйте их.
  • Теперь проверьте, совпадает ли данное число с противоположным числом.
  • Если они равны, то они дружелюбны.
  • Получаем результат.
x=int(input('Enter first number : ')) y=int(input('Enter second number : ')) sum1=0 sum2=0 for i in range(1,x): if x%i==0: sum1+=i for j in range(1,y): if y%j==0: sum2+=j if(sum1==y and sum2==x): print('Given numbers are Amicable!') else: print('Given numbers are not Amicable!')
Enter first number : 220 Enter second number : 284 Given numbers are Amicable!
Enter first number : 365 Enter second number : 456 Given numbers are not Amicable!

В приведенном выше примере мы берем вводимые пользователем данные и сохраняем их в отдельных переменных. Мы использовали оператор for loop и if, чтобы найти правильный делитель обоих чисел. Затем мы находим сумму собственных делителей обоих чисел. Используя оператор if, мы проверили, равна ли сумма собственного делителя чисел другому числу и наоборот.

Как узнать количество пар дружественных чисел из списка

У нас есть два списка целых чисел, где мы выберем каждое число из обоих списков и сравним их. Если числа дружественные, увеличьте счет и вернитесь. Давайте разберемся в следующем примере.

# Python3 program to count # amicable pairs in an array # Calculate the sum # of proper divisors def sumOfDiv(x): sum = 1 for i in range(2, x): if x % i == 0: sum += i return sum # Check if pair is amicable def CheckAmicable(a, b): if sumOfDiv(a) == b and sumOfDiv(b) == a: return True else: return False def countPairs(arr, n): count = 0 for i in range(0, n): for j in range(i + 1, n): if CheckAmicable(arr[i], arr[j]): count = count + 1 return count list1 = [220, 284, 1184, 1210, 2, 5] n1 = len(list1) print(countPairs(list1, n1)) list2 = [2620, 2924, 5020, 5564, 6232, 6368] n2 = len(list2) print(countPairs(list2, n2))

Это простой способ узнать количество дружественных пар чисел. Мы проходим и проверяем, составляют ли они дружескую пару.

Источник

Дружественные числа

Дружественными числами являются два натуральных числа, таких, что каждое из них, равно сумме всех натуральных делителей другого, исключая само это другое число. Написать программу, которая ищет дружественные числа в диапазоне от 1 до N.

Входные данные
Входная строка содержит натуральное число N.

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

Выходные данные
220 284
1184 1210

Дружественные числа до 10000
Здравствуйте. Помогите с задачкой: Найти все пары дружественных чисел до 10 000. Пара дружественных.

Задача №635. Дружественные числа
Два различных натуральных числа называются дружественными, если первое из них равно сумме делителей.

Дружественные числа
Программа должна вывести слово ‘YES’, если полученные числа – дружественные, и слово ‘NO’ в.

Дружественные числа
Два натуральных числа называются «дружественными», если каждое из них равно сумме всех делителей.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
def div_sum(n): res = 0 for d in range(1, n): if n % d == 0: res += d return res #============================================================================== def get_amicable_numbers(n): res = [] res_inv = [] res_ami = [] for i in range(1, n+1): k = div_sum(i) if i != k and k  n: res.append( (i, k) ) res_inv.append( (k, i) ) if (i,k) in res_inv: res_ami.append( (k, i) ) return res_ami #============================================================================== n = int( input( 'n = ' ) ) print( get_amicable_numbers(n) )

Эксперт функциональных языков программированияЭксперт Python

Лучший ответ

Сообщение было отмечено Gukos как решение

Решение

ЦитатаСообщение от Gukos Посмотреть сообщение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
n=int(input("n=")) for a in range(n+1): sa=1 k=2 while k*ka: if a%k==0: sa+=k m=a//k if m != k: sa+=m k+=1 if san: ssa=1 k=2 while k*ksa: if sa%k==0: ssa+=k m=sa//k if m != k: ssa+=m k+=1 if a==ssa and a != sa and a  sa: print(a,sa)

Дружественные числа
Два натуральных числа называются »дружественными» , если каждое из них равно сумме всех делителей.

Числа близнецы, дружественные числа, пифагоровы числа и числа амстронга
Здравствуйте, помогите написать программу где в заданном диапазоне программа находит: числа.

Числа близнецы, дружественные числа, пифагоровы числа и числа Армстронга
Здравствуйте, помогите написать программу где в заданном диапазоне программа находит: числа.

Массивы. Дружественные числа, счасливые числа. и т.д.
Всем привет. Я тут впервый раз. Дело обстоит так. Я уже ни знаю что и делать. Перепробовал.

Дружественные числа
Даны два целых положительных числа M, N. Требуется найти все «дружественные» пары чисел на отрезке.

Дружественные числа
Дружественные числа Даны два целых положительных числа M, N. Требуется найти все «дружественные».

Дружественные числа
Будем считать, что два числа дружественны, если они состоят из одних и тех же чисел. Например.

Источник

Читайте также:  Создание pdf документов php
Оцените статью