检查除数的计数是偶数还是奇数

给定一个数“n”,求其除数的总数为偶数或奇数。 例如:

null
Input  : n = 10      Output : EvenInput:  n = 100Output: OddInput:  n = 125Output: Even

我们强烈建议您在继续解决方案之前单击此处并进行练习。

A. 幼稚的方法 那就是 找到所有的除数 然后看看除数的总数是偶数还是奇数。 这种解决方案的时间复杂度为O(sqrt(n))

C++

// Naive Solution to find
// if count of divisors
// is even or odd
#include <bits/stdc++.h>
using namespace std;
// Function to count
// the divisors
void countDivisors( int n)
{
// Initialize count
// of divisors
int count = 0;
// Note that this
// loop runs till
// square root
for ( int i = 1; i <= 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)
cout << "Even" << endl;
else
cout << "Odd" << endl;
}
// Driver Code
int main()
{
cout << "The count of divisor: " ;
countDivisors(10);
return 0;
}
// This code is Contributed by SHUBHAMSINGH10


C

// Naive Solution to find
// if count of divisors
// is even or odd
#include <math.h>
#include <stdio.h>
// Function to count
// the divisors
void countDivisors( int n)
{
// Initialize count
// of divisors
int count = 0;
// Note that this
// loop runs till
// square root
for ( int i = 1; i <= 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)
printf ( "Even" );
else
printf ( "Odd" );
}
// Driver Code
int main()
{
printf ( "The count of divisor: " );
countDivisors(10);
return 0;
}


JAVA

// 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 Code
public static void main(String args[])
{
System.out.print( "The count of divisor: " );
countDivisors( 10 );
}
}
// This code is contributed by Nikita Tiwari


Python3

# Naive Solution to find if count
# of divisors is even or odd
import math
# Function to count
# the divisors
def countDivisors(n) :
# Initialize count
# of divisors
count = 0
# Note that this loop
# runs till square
# root
for i in range ( 1 , ( int )(math.sqrt(n)) + 2 ) :
if (n % i = = 0 ) :
# If divisors are
# equal, increment
# count by one
# Otherwise increment
# count by 2
if ( n / / i = = i) :
count = count + 1
else :
count = count + 2
if (count % 2 = = 0 ) :
print ( "Even" )
else :
print ( "Odd" )
# Driver Code
print ( "The count of divisor: " )
countDivisors( 10 )
# This code is contributed by Nikita Tiwari


C#

// C# program using Naive
// Solution to find if
// count of divisors
// is even or odd
using System;
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)
Console.Write( "Even" );
else
Console.Write( "Odd" );
}
// Driver code
public static void Main()
{
Console.Write( "The count of divisor: " );
countDivisors(10);
}
}
// This code is contributed by Sam007.


PHP

<?php
// Naive Solution to
// find if count of
// divisors is even
// or odd
// Function to count
// the divisors
function countDivisors( $n )
{
// Initialize count
// of divisors
$count = 0;
// Note that this
// loop runs till
// square root
for ( $i = 1; $i <= 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)
echo "Even" ;
else
echo "Odd" ;
}
// Driver Code
echo "The count of divisor: " ;
countDivisors(10);
// This code is contributed by ajit.
?>


Javascript

<script>
// Naive Solution to find
// if count of divisors
// is even or odd
// Function to count
// the divisors
function countDivisors(n)
{
// Initialize count
// of divisors
let count = 0;
// Note that this
// loop runs till
// square root
for (let 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 += (Math.floor(n / i) == i) ? 1 : 2;
}
if (count % 2 == 0)
document.write( "Even" + "<br>" );
else
document.write( "Odd" + "<br>" );
}
// Driver Code
document.write( "The count of divisor: " );
countDivisors(10);
// This code is contributed by Surbhi Tyagi.
</script>


输出:

The count of divisor: Even 

高效的解决方案: 我们可以观察到,只有在完全平方的情况下,除数的数目才是奇数。因此,最好的解决方案是检查给定的数字是否为完全平方。如果它是一个完美的正方形,那么除数的数量将是奇数,否则它将是偶数。 以下是上述理念的实施:

C++

// C++ program for
// Efficient Solution to find
// if count of divisors is
// even or odd
#include <bits/stdc++.h>
using namespace std;
// Function to find if count
// of divisors is even or
// odd
void countDivisors( int n)
{
int root_n = sqrt (n);
// If n is a perfect square,
// then it has odd divisors
if (root_n * root_n == n)
printf ( "Odd" );
else
printf ( "Even" );
}
// Driver Code
int main()
{
cout << "The count of divisors"
<< " of 10 is: " ;
countDivisors(14);
return 0;
}


JAVA

// 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 code
public static void main(String args[])
throws IOException
{
System.out.print( "The count of" +
"divisors of 10 is: " );
countDivisors( 10 );
}
}
// This code is contributed by Nikita Tiwari


Python3

# Python program for
# Efficient Solution to find
# find if count of divisors
# is even or odd
import math
def NumOfDivisor(n):
if n < 1 :
return
root_n = int (math.sqrt(n))
# If n is a perfect square,
# then it has odd divisors
if root_n * * 2 = = n:
print ( 'Odd' )
else :
print ( 'Even' )
# Driver code
if __name__ = = '__main__' :
print ( "The count of divisor is:" )
NumOfDivisor( 14 )
# This code is contributed by Yt R


C#

// C# program for efficient
// solution to find of
// count of divisors is
// even or odd
using System;
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)
Console.WriteLine( "Odd" );
else
Console.WriteLine( "Even" );
}
// Driver code
public static void Main()
{
Console.Write( "The count of divisors : " );
countDivisors(10);
}
}
// This code is contributed by Sam007.


PHP

<?php
// Php program for Efficient
// Solution to find if count of
// divisors is even or odd
// Function to find if count
// of divisors is even or
// odd
function countDivisors( $n )
{
$root_n = sqrt( $n );
// If n is a perfect square,
// then it has odd divisors
if ( $root_n * $root_n == $n )
echo "Odd" ;
else
echo "Even" ;
}
// Driver Code
echo "The count of divisors of 10 is: " ;
countDivisors(10);
// This code is contributed by ajit
?>


Javascript

<script>
// JavaScript program for
// Efficient Solution to find
// if count of divisors
// is even or odd
// Function to count
// the divisors
function countDivisors(n)
{
// Store square root of n
let root_n = Math.sqrt(n);
// If n is a perfect square,
// then it has odd divisors
if (root_n * root_n == n)
document.write( "Odd" + "<br>" );
else
document.write( "Even" + "<br>" );
}
// Driver Code
document.write( "The count of divisor: " );
countDivisors(10);
// This code is contributed by Surbhi Tyagi.
</script>


输出:

The count of divisor: Even

本文由 阿什图什·库马尔 。如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请发表评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享