Рубрики

Проверьте, является ли количество делителей четным или нечетным

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

Примеры :

Input  : n = 10      
Output : Even

Input:  n = 100
Output: Odd

Input:  n = 125
Output: Even

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

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

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

С

// Наивное решение, чтобы найти
// если подсчет делителей
// четный или нечетный

  
#include <math.h>
#include <stdio.h>

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

void countDivisors(int n)

{

    // Инициализировать счет

    // делителей

    int count = 0;

  

    // Обратите внимание, что это

    // цикл продолжается до

    // квадратный корень

    for (int i = 1; i <= sqrt(n) + 1; i++) 

    {

        if (n % i == 0)

  

            // Если делители

            // равный прирост

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

            // Иначе приращение

            // считать на 2

            count += (n / i == i) ? 1 : 2;

    }

  

    if (count % 2 == 0)

        printf("Even\n");

  

    else

        printf("Odd\n");

}

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

int main()

{

    printf("The count of divisor: ");

    countDivisors(10);

    return 0;

}

Джава

// Наивное решение, чтобы найти, если считать
// делителей четные или нечетные

  

import java.io.*;

import java.math.*;

  

class GFG 

{

  

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

    // делители

    static void countDivisors(int n)

    {

        // Инициализировать счет

        // делителей

        int count = 0;

  

        // Обратите внимание, что это

        // цикл продолжается до

        // квадратный корень

        for (int i = 1; i <= Math.sqrt(n) + 1; i++) 

        {

            if (n % i == 0)

  

                // Если делители

                // равный прирост

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

                // Иначе приращение

                // считать на 2

                count += (n / i == i) ? 1 : 2;

        }

  

        if (count % 2 == 0)

            System.out.println("Even");

  

        else

            System.out.println("Odd");

    }

  

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

    public static void main(String args[])

    {

        System.out.print("The count of divisor: ");

        countDivisors(10);

    }

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

питон

# Наивное решение, чтобы найти, если считать
Количество делителей четное или нечетное

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)

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

C #

// C # программа с использованием Naive
// Решение, чтобы найти, если
// количество делителей
// четный или нечетный

using System;

  

class GFG {

  

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

    // делители

    static void countDivisors(int n)

    {

        // Инициализировать счет

        // делителей

        int count = 0;

  

        // Обратите внимание, что это

        // цикл продолжается до

        // квадратный корень

        for (int i = 1; i <= Math.Sqrt(n)

                                 + 1;

             i++) {

            if (n % i == 0)

  

                // Если делители

                // равный прирост

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

                // Иначе приращение

                // считать на 2

                count += (n / i == i) ? 1 : 2;

        }

  

        if (count % 2 == 0)

            Console.Write("Even");

  

        else

            Console.Write("Odd");

    }

  

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

    public static void Main()

    {

        Console.Write("The count of divisor: ");

        countDivisors(10);

    }

}

  
// Этот код предоставлен Sam007.

PHP

<?php
// Наивное решение для
// найти счетчик
// делители четные
// или нечетный

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

function countDivisors($n)

{

      

    // Инициализировать счет

    // делителей

    $count = 0;

  

    // Обратите внимание, что это

    // цикл продолжается до

    // квадратный корень

    for ($i = 1; $i <= sqrt($n) + 1; $i++)

    {

        if ($n % $i == 0)

  

            // Если делители

            // равный прирост

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

            // Иначе приращение

            // считать на 2

            $count += ($n / $i == $i)? 1 : 2;

    }

  

    if ($count % 2 == 0)

        echo "Even\n";

          

    else

        echo "Odd\n";

}

  

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

    echo "The count of divisor: ";

    countDivisors(10);

      
// Этот код предоставлен ajit.
?>


Выход :

The count of divisor: Even 

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

Ниже приведена реализация вышеуказанной идеи:

C ++

// C ++ программа для
// Эффективное решение для поиска
// если счетчик делителей
// четным или нечетным
#include <bits/stdc++.h>

using namespace std;

  
// Функция, чтобы найти, если считать
// делителей четные или
// странный

void countDivisors(int n)

{

    int root_n = sqrt(n);

  

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

    // тогда он имеет нечетные делители

    if (root_n * root_n == n)

        printf("Odd\n");

    else

        printf("Even\n");

}

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

int main()

{

    cout << "The count of divisors"

         << " of 10 is: ";

  

    countDivisors(10);

    return 0;

}

Джава

// Java-программа для Efficient
// Решение, чтобы найти, если счет
// делители четные или нечетные

import java.io.*;

import java.math.*;

  

class GFG

{

  

    // Функция, чтобы найти, если считать

    // делителей четные или

    // странный

    static void countDivisors(int n)

    {

        int root_n = (int)(Math.sqrt(n));

  

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

        // тогда он имеет нечетные делители

        if (root_n * root_n == n)

            System.out.println("Odd");

  

        else

            System.out.println("Even");

    }

  

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

    public static void main(String args[])

        throws IOException

    {

        System.out.print("The count of"

                    "divisors of 10 is: ");

  

        countDivisors(10);

    }

}

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

питон

# 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

C #

// C # программа для эффективного
// решение для поиска
// количество делителей
// четным или нечетным

using System;

  

class GFG {

  

    // Функция, чтобы найти, если

    // количество делителей

    // четный или нечетный

    static void countDivisors(int n)

    {

        int root_n = (int)(Math.Sqrt(n));

  

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

        // тогда он имеет нечетные делители

        if (root_n * root_n == n)

            Console.WriteLine("Odd");

  

        else

            Console.WriteLine("Even");

    }

  

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

    public static void Main()

    {

        Console.Write("The count of divisors : ");

  

        countDivisors(10);

    }

}

  
// Этот код предоставлен Sam007.

PHP

<?php
// Php программа для Efficient
// Решение, чтобы найти, если счет
// делители четные или нечетные

  
// Функция, чтобы найти, если считать
// делителей четные или
// странный

  

function countDivisors($n)

{

    $root_n = sqrt($n);

  

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

    // тогда он имеет нечетные делители

    if ($root_n * $root_n == $n)

        echo "Odd\n";

    else

        echo "Even\n";

}

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

echo "The count of divisors of 10 is: ";

  
countDivisors(10);

  
// Этот код предоставлен ajit
?>


Выход :

The count of divisor: Even

Эта статья предоставлена Ашутошем Кумаром . Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

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

Проверьте, является ли количество делителей четным или нечетным

0.00 (0%) 0 votes