Определите однопараметрическое разрешение print_for (n), n представляет диапазон, в котором будет напечатан номер друга

#python

#python

Вопрос:

Определите однопараметрическое разрешение print_for (n), n представляет диапазон, в котором будет напечатан номер друга. Для n = 10 000 результатов, пять пар дружественных номеров: 220 и 284, 1184 и 1210, 2620 и 2924, 5020 и 5564, а также 6232 и 6368.

 from math import *
def sum_of_divisor (a):
pom = 1
for i in range (2, int (sqrt(a))   1):
    if a % i == 0:
        pom  = i
        if i != a // i:
        pom  = a // i
return pom

def friendly_n (a, b):
    result = "false"
    if(a == sum_of_divisor(b) and sum_of_divisor(a) == b):
        result = "true"
    return result
a = 284
b = 220 

def write_friendly(n)
 

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

Комментарии:

1. Каково определение дружественных номеров? Возможно, переведите имена функций на английский, это может быть более понятно для остальных из нас.

2. В теории чисел дружественные числа — это два или более натуральных числа с общим индексом изобилия, отношением между суммой делителей числа и самим числом. Два числа с одинаковым «изобилием» образуют дружественную пару; n чисел с одинаковым «изобилием» образуют дружественный n-кортеж.

3. Я перевел имена функций на английский

4. ХОРОШО, перевод действительно помогает. Итак, вы хотите перейти к friendly_n a и b, где a и b находятся в диапазоне от 2 до n , а a не является b? Может быть, с двумя вложенными циклами for ?

5. Мне нужно написать программу в соответствии с приведенной выше командой, и я не знаю, как написать функцию, которая печатает номера друзей

Ответ №1:

После ваших комментариев, возможно, это поможет:

 if friendly_n(a, b) == 'true': # a and b are friendly, according to friendly_n
    string_to_print = str(a)   ' and '   str(b)   ' are friendly'
    print(string_to_print)
 

?