检查除数是偶数还是奇数的 Java 程序
给定一个数“n”,求它的除数总数是偶数还是奇数。
示例:
Input: n = 10
Output: Even
Input: n = 100
Output: Odd
Input: n = 125
Output: Even
一种天真的方法是找到所有的除数,然后看看除数的总数是偶数还是奇数。
这种解决方案的时间复杂度为 0(平方英尺(n))
// Naive Solution to
// find if count of
// divisors is even
// or odd
import java.io.*;
import java.math.*;
class GFG {
// Function to count
// the divisors
static void countDivisors(int n)
{
// Initialize count
// of divisors
int count = 0;
// Note that this
// loop runs till
// square root
for (int i = 1; i <= Math.sqrt(n) + 1; i++) {
if (n % i == 0)
// If divisors are
// equal increment
// count by one
// Otherwise increment
// count by 2
count += (n / i == i) ? 1 : 2;
}
if (count % 2 == 0)
System.out.println("Even");
else
System.out.println("Odd");
}
// Driver program
public static void main(String args[])
{
System.out.println("The count of divisor:");
countDivisors(10);
}
}
/* This code is contributed by Nikita Tiwari.*/
Output:
The count of divisor:
Even
有效解: 我们可以观察到除数只有在完美平方的情况下才是奇数。因此,最好的解决办法是检查给定的数字是否是完美的正方形。如果它是一个完美的正方形,那么除数将是奇数,否则它将是偶数。
// Java program for
// Efficient Solution to find
// if count of divisors is
// even or odd
import java.io.*;
import java.math.*;
class GFG {
// Function to find if count
// of divisors is even or
// odd
static void countDivisors(int n)
{
int root_n = (int)(Math.sqrt(n));
// If n is a perfect square,
// then, it has odd divisors
if (root_n * root_n == n)
System.out.println("Odd");
else
System.out.println("Even");
}
/* Driver program to test above function */
public static void main(String args[])
throws IOException
{
System.out.println("The count of "
+ "divisors of 10 is: ");
countDivisors(10);
}
}
/* This code is contributed by Nikita Tiwari. */
Output:
The count of divisors of 10 is:
Even
详情请参考查看除数是偶数还是奇数整篇文章!
版权属于:月萌API www.moonapi.com,转载请注明出处