Рубрики

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

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

Примеры:

Input: n = 10      
Output: Even

Input: n = 100
Output: Odd

Input:  n = 125
Output: Even

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

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

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

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.println("The count of divisor:");

        countDivisors(10);

    }

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

Выход:

The count of divisor:
Even

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

// Java-программа для
// Эффективное решение для поиска
// если счетчик делителей
// четным или нечетным

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.println("The count of "

                           + "divisors of 10 is: ");

  

        countDivisors(10);

    }

}

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

Выход:

The count of divisors of 10 is: 
Even

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

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

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

0.00 (0%) 0 votes