给定一个数“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