Предмет: Информатика, автор: lfif8549

ЯЗЫК ПИТОН!!!
Делители
Дано натуральное число n. Подсчитайте количество таких пар чисел (a;b), что:
a и b — делители n;
a a и b — взаимно простые;
ab≤n.
Ввод
10
Вывод
4

Ответы

Автор ответа: esikov506
1

Ответ:

если нужно, то могу скинуть программу на почту файлом

Объяснение:

def gcd(a, b):

   if b <= 0:

       return a

   if a > b:

       a, b = b, a  

   return gcd(a, b - a) == 1

def dividers(n):

   divs = []

   for i in range(1, n + 1):

       if n % i == 0:

           divs.append(i)

   return divs

def main(n):

   used = []

   number = 0

   div = dividers(n)

   for a in div:

       for b in div:

           if a != b:  

               if (a, b) not in used:              

                   if gcd(a, b):

                       if a * b <= n:

                           number += 1

           used += [(a, b), (b, a)]

   return number

print(main(int(input())))


lfif8549: Что вы подразумеваете под "скинуть программу"?
lfif8549: "Программа выдает ошибку в процессе выполнения"- так пишет
esikov506: при каком вводе?
esikov506: скорее всего проблема в форматировании, т.к. сайт выдает текст с отступами в каждой строчке
lfif8549: Хорошо, я чуть позже попробую сама переписать и еще раз проверить. При каком вводе не знаю...
esikov506: если хочешь могу скинуть тебе ссылку на диск где программа лежи, что бы просто в редакторе открыть и тогда не нужно будет переписывать)
alekhakirill: а есть алгоритм побыстрее
esikov506: сомневаюсь
Похожие вопросы
Предмет: Английский язык, автор: Kamila9510
Предмет: Алгебра, автор: марысяяя
Предмет: Математика, автор: лолита1106