Ejemplo n.º 1
0
# ## Алгоритмы

# Ну хорошо, а можно ли придумать другой алгоритм нахождения дружественных чисел?
# Конечно да
#
# Я даже предлагаю использовать библиотеку **sympy**. Взять функцию от туда и сравнить по скорости обе.
#
# Единственный недостаток. У библиотеки есть функция не нахождение дружественных чисел, а их проверка! Поэтому, самостоятельно создадим двухмерную итерацию.

# In[23]:

from sympy.ntheory.factor_ import is_amicable

for i in range(1, 1000):
    for j in range(1, 1000):
        if (is_amicable(i, j)):
            print(i, j)

# Попробуйте воссоздать это на с++
#
# Ведь на Python, циклы работают медленно, поэтому даже замерить в сравнении будет тяжело. Не думаю, что числа получатся годными для сравнения, но попробуем.

# In[24]:

get_ipython().run_line_magic('time', 'is_amicable(1184,1210)')

# In[25]:

get_ipython().run_line_magic('time', 'AmicableNumber(1184)')

# Так, мы видим, что нахождение пары для ЧИСЛА намного дольше, чем проверка уже готовой пары.
Ejemplo n.º 2
0
def test_is_amicable():
    assert is_amicable(173, 129) is False
    assert is_amicable(220, 284) is True
    assert is_amicable(8756, 8756) is False
Ejemplo n.º 3
0
def test_is_amicable():
    assert is_amicable(173, 129) is False
    assert is_amicable(220, 284) is True
    assert is_amicable(8756, 8756) is False