Рубрики

Программа Python для проверки, является ли количество делителей четным или нечетным

Учитывая число «n», найдите его общее число делителей четных или нечетных.

Примеры :

Input  : n = 10      
Output : Even

Input:  n = 100
Output: Odd

Input:  n = 125
Output: Even

Наивным подходом было бы найти все делители, а затем посмотреть, является ли общее число делителей четным или нечетным.

Временная сложность для такого решения будет O (sqrt (n))

# Наивное решение для
# найти, если количество
# делители четные
# или нечетное

import math

  
# Функция для подсчета
# делители

def countDivisors(n) :

      

    # Initialize count

    Количество делителей

    count = 0

  

    # Обратите внимание, что этот цикл

    # бежит до квадрата

    # root

    for i in range(1, (int)(math.sqrt(n)) + 2) :

        if (n % i == 0) :

              

            # Если делители

            # равно, приращение

            # считать по одному

            # В противном случае увеличить

            # считать на 2

            if( n // i == i) :

                count = count + 1

            else :

                count = count + 2

  

    if (count % 2 == 0) :

        print("Even")

    else :

        print("Odd")

  

  
# Программа драйвера для проверки вышеуказанной функции * /

print("The count of divisor: ")

countDivisors(10)

  
# Этот код предоставлен Никитой Тивари. * /

Выход :

The count of divisor: Even 

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

# Python программа для
# Эффективное решение, чтобы найти
# найти число делителей
# является четным или нечетным

  
# Python программа для
# Эффективное решение, чтобы найти
# найти число делителей
# является четным или нечетным

  

def NumOfDivisor(n):

    if n < 1:

        return

    root_n = n**0.5

      

    # Если n идеальный квадрат,

    # то есть странные делители

    if root_n**2 == n:

        print("Odd")

    else:

        print("Even")

          
# Код драйвера

if __name__ == '__main__':

    print("The count of divisor"+

        "of 10 is: ")

    NumOfDivisor(10)

      
# Этот код предоставлен Yt R

   

Выход :

The count of divisorof 10 is: 
Even 

Пожалуйста, обратитесь к полной статье на Проверка, является ли количество делителей четным или нечетным для получения более подробной информации!

Рекомендуемые посты:

Программа Python для проверки, является ли количество делителей четным или нечетным

0.00 (0%) 0 votes