检查一个数字是否可以表示为x^y(x提升为y的幂) 给定一个正整数n,找出它是否可以表示为x^y,其中y>1,x>0。x和y都是整数。 例如:
null
Input: n = 8Output: true8 can be expressed as 2^3Input: n = 49Output: true49 can be expressed as 7^2Input: n = 48Output: false48 can't be expressed as x^y
我们在下面的帖子中讨论了两种不同的方法。 检查一个数字是否可以表示为x^y(x提升为y的幂) . 其思想是在从2到n的平方根的不同基数中找到logn。如果基数的logn变为整数,则结果为真,否则结果为假。
C++
// CPP program to find if a number // can be expressed as x raised to // power y. #include <bits/stdc++.h> using namespace std; bool isPower(unsigned int n) { // Find Log n in different bases // and check if the value is an // integer for ( int x=2; x<= sqrt (n); x++) { float f = log (n) / log (x); if ((f - ( int )f) == 0.0) return true ; } return false ; } // Driver code int main() { for ( int i = 2; i < 100; i++) if (isPower(i)) cout << i << " " ; return 0; } |
JAVA
// Java program to find if a number // can be expressed as x raised to // power y. class GFG { static boolean isPower( int n) { // Find Log n in different // bases and check if the // value is an integer for ( int x = 2 ; x <= ( int )Math.sqrt(n); x++) { float f = ( float )Math.log(n) / ( float ) Math.log(x); if ((f - ( int )f) == 0.0 ) return true ; } return false ; } // Driver code public static void main(String args[]) { for ( int i = 2 ; i < 100 ; i++) if (isPower(i)) System.out.print( i + " " ); } } // This code is contributed by Sam007 |
Python3
# Python3 program to find if a number # can be expressed as x raised to # power y. import math def isPower(n): # Find Log n in different # bases and check if the # value is an integer for x in range ( 2 , int (math.sqrt(n)) + 1 ): f = math.log(n) / math.log(x); if ((f - int (f)) = = 0.0 ): return True ; return False ; # Driver code for i in range ( 2 , 100 ): if (isPower(i)): print (i, end = " " ); # This code is contributed by mits |
C#
// C# program to find if a number // can be expressed as x raised to // power y. using System; class GFG { static bool isPower( int n) { // Find Log n in different // bases and check if the // value is an integer for ( int x = 2; x <= ( int )Math.Sqrt(n); x++) { float f = ( float )Math.Log(n) / ( float ) Math.Log(x); if ((f - ( int )f) == 0.0) return true ; } return false ; } // Driver Code public static void Main() { for ( int i = 2; i < 100; i++) if (isPower(i)) Console.Write( i + " " ); } } // This code is contributed by Sam007 |
PHP
<?php // PHP program to find if a number // can be expressed as x raised to // power y. function isPower( $n ) { // Find Log n in different // bases and check if the // value is an integer for ( $x = 2; $x <= sqrt( $n ); $x ++) { $f = log( $n ) / log( $x ); if (( $f - (int) $f ) == 0.0) return true; } return false; } // Driver code for ( $i = 2; $i < 100; $i ++) if (isPower((int) $i )) echo $i . " " ; // This code is contributed by Sam007 ?> |
Javascript
<script> // javascript program to find if a number // can be expressed as x raised to // power y. function isPower(n) { // Find Log n in different // bases and check if the // value is an integer for (x = 2; x <= parseInt( Math.sqrt(n)); x++) { var f = Math.log(n) / Math.log(x); if ((f - parseInt( f)) == 0.0) return true ; } return false ; } // Driver code for (i = 2; i < 100; i++) if (isPower(i)) document.write(i + " " ); // This code contributed by Rajput-Ji </script> |
输出:
4 8 9 16 25 27 32 36 49 64 81
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END