给定一个数字x,确定给定的数字是否为阿姆斯特朗数。的正整数 n位数 被称为阿姆斯特朗数 订单n (顺序为位数)如果。
null
abcd... = pow(a,n) + pow(b,n) + pow(c,n) + pow(d,n) + ....
例子:
Input : 153Output : Yes153 is an Armstrong number.1*1*1 + 5*5*5 + 3*3*3 = 153Input : 120Output : No120 is not a Armstrong number.1*1*1 + 2*2*2 + 0*0*0 = 9Input : 1253Output : No1253 is not a Armstrong Number1*1*1*1 + 2*2*2*2 + 5*5*5*5 + 3*3*3*3 = 723Input : 1634Output : Yes1*1*1*1 + 6*6*6*6 + 3*3*3*3 + 4*4*4*4 = 1634
其思想是首先计算数字(或查找顺序)。设位数为n。对于输入数字x中的每个数字r,计算r N .如果所有这些值之和等于n,则返回true,否则返回false。
C++
// C++ program to determine whether the number is // Armstrong number or not #include<bits/stdc++.h> using namespace std; /* Function to calculate x raised to the power y */ int power( int x, unsigned int y) { if ( y == 0) return 1; if (y%2 == 0) return power(x, y/2)*power(x, y/2); return x*power(x, y/2)*power(x, y/2); } /* Function to calculate order of the number */ int order( int x) { int n = 0; while (x) { n++; x = x/10; } return n; } // Function to check whether the given number is // Armstrong number or not bool isArmstrong( int x) { // Calling order function int n = order(x); int temp = x, sum = 0; while (temp) { int r = temp%10; sum += power(r, n); temp = temp/10; } // If satisfies Armstrong condition return (sum == x); } // Driver Program int main() { int x = 153; cout << isArmstrong(x) << endl; x = 1253; cout << isArmstrong(x) << endl; return 0; } |
C
// C program to find Armstrong number #include <stdio.h> /* Function to calculate x raised to the power y */ int power( int x, unsigned int y) { if (y == 0) return 1; if (y % 2 == 0) return power(x, y / 2) * power(x, y / 2); return x * power(x, y / 2) * power(x, y / 2); } /* Function to calculate order of the number */ int order( int x) { int n = 0; while (x) { n++; x = x / 10; } return n; } // Function to check whether the given number is // Armstrong number or not int isArmstrong( int x) { // Calling order function int n = order(x); int temp = x, sum = 0; while (temp) { int r = temp % 10; sum += power(r, n); temp = temp / 10; } // If satisfies Armstrong condition if (sum == x) return 1; else return 0; } // Driver Program int main() { int x = 153; if (isArmstrong(x) == 1) printf ( "True" ); else printf ( "False" ); x = 1253; if (isArmstrong(x) == 1) printf ( "True" ); else printf ( "False" ); return 0; } |
JAVA
// Java program to determine whether the number is // Armstrong number or not public class Armstrong { /* Function to calculate x raised to the power y */ int power( int x, long y) { if ( y == 0 ) return 1 ; if (y% 2 == 0 ) return power(x, y/ 2 )*power(x, y/ 2 ); return x*power(x, y/ 2 )*power(x, y/ 2 ); } /* Function to calculate order of the number */ int order( int x) { int n = 0 ; while (x != 0 ) { n++; x = x/ 10 ; } return n; } // Function to check whether the given number is // Armstrong number or not boolean isArmstrong ( int x) { // Calling order function int n = order(x); int temp=x, sum= 0 ; while (temp!= 0 ) { int r = temp% 10 ; sum = sum + power(r,n); temp = temp/ 10 ; } // If satisfies Armstrong condition return (sum == x); } // Driver Program public static void main(String[] args) { Armstrong ob = new Armstrong(); int x = 153 ; System.out.println(ob.isArmstrong(x)); x = 1253 ; System.out.println(ob.isArmstrong(x)); } } |
python
# Python program to determine whether the number is # Armstrong number or not # Function to calculate x raised to the power y def power(x, y): if y = = 0 : return 1 if y % 2 = = 0 : return power(x, y / 2 ) * power(x, y / 2 ) return x * power(x, y / 2 ) * power(x, y / 2 ) # Function to calculate order of the number def order(x): # variable to store of the number n = 0 while (x! = 0 ): n = n + 1 x = x / 10 return n # Function to check whether the given number is # Armstrong number or not def isArmstrong (x): n = order(x) temp = x sum1 = 0 while (temp! = 0 ): r = temp % 10 sum1 = sum1 + power(r, n) temp = temp / 10 # If condition satisfies return (sum1 = = x) # Driver Program x = 153 print (isArmstrong(x)) x = 1253 print (isArmstrong(x)) |
Python3
# python3 >= 3.6 for typehint support # This example avoids the complexity of ordering # through type conversions & string manipulation def isArmstrong(val: int ) - > bool : """val will be tested to see if its an Armstrong number. Arguments: val {int} -- positive integer only. Returns: bool -- true is /false isn't """ # break the int into its respective digits parts = [ int (_) for _ in str (val)] # begin test. counter = 0 for _ in parts: counter + = _ * * 3 return ( counter = = val ) # Check Armstrong number print (isArmstrong( 100 )) print (isArmstrong( 153 )) # Get all the Armstrong number in range(1000) print ([ _ for _ in range ( 1000 ) if isArmstrong(_)]) |
C#
// C# program to determine whether the // number is Armstrong number or not using System; public class GFG { // Function to calculate x raised // to the power y int power( int x, long y) { if ( y == 0) return 1; if (y % 2 == 0) return power(x, y / 2) * power(x, y / 2); return x * power(x, y / 2) * power(x, y / 2); } // Function to calculate // order of the number int order( int x) { int n = 0; while (x != 0) { n++; x = x / 10; } return n; } // Function to check whether the // given number is Armstrong number // or not bool isArmstrong ( int x) { // Calling order function int n = order(x); int temp = x, sum = 0; while (temp != 0) { int r = temp % 10; sum = sum + power(r, n); temp = temp / 10; } // If satisfies Armstrong condition return (sum == x); } // Driver Code public static void Main() { GFG ob = new GFG(); int x = 153; Console.WriteLine(ob.isArmstrong(x)); x = 1253; Console.WriteLine(ob.isArmstrong(x)); } } // This code is contributed by Nitin Mittal. |
Javascript
<script> // JavaScript program to determine whether the // number is Armstrong number or not // Function to calculate x raised // to the power y function power(x, y) { if ( y == 0) return 1; if (y % 2 == 0) return power(x, parseInt(y / 2, 10)) * power(x, parseInt(y / 2, 10)); return x * power(x, parseInt(y / 2, 10)) * power(x, parseInt(y / 2, 10)); } // Function to calculate // order of the number function order(x) { let n = 0; while (x != 0) { n++; x = parseInt(x / 10, 10); } return n; } // Function to check whether the // given number is Armstrong number // or not function isArmstrong(x) { // Calling order function let n = order(x); let temp = x, sum = 0; while (temp != 0) { let r = temp % 10; sum = sum + power(r, n); temp = parseInt(temp / 10, 10); } // If satisfies Armstrong condition return (sum == x); } let x = 153; if (isArmstrong(x)) { document.write( "True" + "</br>" ); } else { document.write( "False" + "</br>" ); } x = 1253; if (isArmstrong(x)) { document.write( "True" ); } else { document.write( "False" ); } </script> |
输出:
TrueFalse
找到n th 阿姆斯特朗数
Input : 9Output : 9Input : 10Output : 153
C++
// C++ Program to find // Nth Armstrong Number #include<bits/stdc++.h> #include<math.h> using namespace std; // Function to find Nth Armstrong Number int NthArmstrong( int n) { int count=0; // upper limit from integer for ( int i = 1; i <= INT_MAX; i++) { int num=i, rem, digit=0, sum=0; //Copy the value for num in num num = i; // Find total digits in num digit = ( int ) log10 (num) + 1; // Calculate sum of power of digits while (num > 0) { rem = num % 10; sum = sum + pow (rem,digit); num = num / 10; } // Check for Armstrong number if (i == sum) count++; if (count==n) return i; } } // Driver Function int main() { int n = 12; cout<<NthArmstrong(n); return 0; } // This Code is Contributed by 'jaingyayak' |
JAVA
// Java Program to find // Nth Armstrong Number import java.lang.Math; class GFG { // Function to find Nth Armstrong Number static int NthArmstrong( int n) { int count = 0 ; // upper limit from integer for ( int i = 1 ; i <= Integer.MAX_VALUE; i++) { int num = i, rem, digit = 0 , sum = 0 ; //Copy the value for num in num num = i; // Find total digits in num digit = ( int ) Math.log10(num) + 1 ; // Calculate sum of power of digits while (num > 0 ) { rem = num % 10 ; sum = sum + ( int )Math.pow(rem, digit); num = num / 10 ; } // Check for Armstrong number if (i == sum) count++; if (count == n) return i; } return n; } // Driver Code public static void main(String[] args) { int n = 12 ; System.out.println(NthArmstrong(n)); } } // This code is contributed by Code_Mech. |
Python3
# Python3 Program to find Nth Armstrong Number import math; import sys; # Function to find Nth Armstrong Number def NthArmstrong(n): count = 0 ; # upper limit from integer for i in range ( 1 , sys.maxsize): num = i; rem = 0 ; digit = 0 ; sum = 0 ; # Copy the value for num in num num = i; # Find total digits in num digit = int (math.log10(num) + 1 ); # Calculate sum of power of digits while (num > 0 ): rem = num % 10 ; sum = sum + pow (rem, digit); num = num / / 10 ; # Check for Armstrong number if (i = = sum ): count + = 1 ; if (count = = n): return i; # Driver Code n = 12 ; print (NthArmstrong(n)); # This code is contributed by chandan_jnu |
C#
// C# Program to find // Nth Armstrong Number using System; class GFG { // Function to find Nth Armstrong Number static int NthArmstrong( int n) { int count = 0; // upper limit from integer for ( int i = 1; i <= int .MaxValue; i++) { int num = i, rem, digit = 0, sum = 0; // Copy the value for num in num num = i; // Find total digits in num digit = ( int ) Math.Log10(num) + 1; // Calculate sum of power of digits while (num > 0) { rem = num % 10; sum = sum + ( int )Math.Pow(rem, digit); num = num / 10; } // Check for Armstrong number if (i == sum) count++; if (count == n) return i; } return n; } // Driver Code public static void Main() { int n = 12; Console.WriteLine(NthArmstrong(n)); } } // This code is contributed by Code_Mech. |
PHP
<?php // PHP Program to find // Nth Armstrong Number // Function to find // Nth Armstrong Number function NthArmstrong( $n ) { $count = 0; // upper limit // from integer for ( $i = 1; $i <= PHP_INT_MAX; $i ++) { $num = $i ; $rem ; $digit = 0; $sum = 0; // Copy the value // for num in num $num = $i ; // Find total // digits in num $digit = (int) log10( $num ) + 1; // Calculate sum of // power of digits while ( $num > 0) { $rem = $num % 10; $sum = $sum + pow( $rem , $digit ); $num = (int) $num / 10; } // Check for // Armstrong number if ( $i == $sum ) $count ++; if ( $count == $n ) return $i ; } } // Driver Code $n = 12; echo NthArmstrong( $n ); // This Code is Contributed // by akt_mit ?> |
Javascript
<script> // Javascript program to find Nth Armstrong Number // Function to find Nth Armstrong Number function NthArmstrong(n) { let count = 0; // Upper limit from integer for (let i = 1; i <= Number.MAX_VALUE; i++) { let num = i, rem, digit = 0, sum = 0; // Copy the value for num in num num = i; // Find total digits in num digit = parseInt(Math.log10(num), 10) + 1; // Calculate sum of power of digits while (num > 0) { rem = num % 10; sum = sum + Math.pow(rem, digit); num = parseInt(num / 10, 10); } // Check for Armstrong number if (i == sum) count++; if (count == n) return i; } return n; } // Driver code let n = 12; document.write(NthArmstrong(n)); // This code is contributed by rameshtravel07 </script> |
输出:
371
使用字符串:
当把数字看作一个字符串时,我们可以访问我们想要的任何数字并执行操作
JAVA
public class armstrongNumber { public void isArmstrong(String n) { char [] s=n.toCharArray(); int size=s.length; int sum= 0 ; for ( char num:s) { int temp= 1 ; int i=Integer.parseInt(Character.toString(num)); for ( int j= 0 ;j<=size- 1 ;j++) { temp *=i;} sum +=temp; } if (sum==Integer.parseInt(n)) { System.out.println( "True" ); } else { System.out.println( "False" ); } } public static void main(String[] args) { armstrongNumber am= new armstrongNumber(); am.isArmstrong( "2" ); am.isArmstrong( "153" ); am.isArmstrong( "1634" ); am.isArmstrong( "231" ); } } |
Python3
def armstrong(n): number = str (n) n = len (number) output = 0 for i in number: output = output + int (i) * * n if output = = int (number): return ( True ) else : return ( False ) print (armstrong( 153 )) print (armstrong( 120 )) |
C#
using System; public class armstrongNumber { public void isArmstrong(String n) { char [] s = n.ToCharArray(); int size = s.Length; int sum = 0; foreach ( char num in s) { int temp = 1; int i = Int32.Parse( char .ToString(num)); for ( int j = 0; j <= size - 1; j++) { temp *= i; } sum += temp; } if (sum == Int32.Parse(n)) { Console.WriteLine( "True" ); } else { Console.WriteLine( "False" ); } } public static void Main(String[] args) { armstrongNumber am = new armstrongNumber(); am.isArmstrong( "153" ); am.isArmstrong( "231" ); } } // This code is contributed by umadevi9616 |
Javascript
<script> function armstrong(n){ let number = new String(n) n = number.length let output = 0 for (let i of number) output = output + parseInt(i)**n if (output == parseInt(number)) return ( "True" + "<br>" ) else return ( "False" + "<br>" ) } document.write(armstrong(153)) document.write(armstrong(120)) // This code is contributed by _saurabh_jaiswal. </script> |
输出
TrueFalse
参考资料: http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/chap04/arms。html http://www.programiz.com/c-programming/examples/check-armstrong-number 本文由 拉胡尔·阿格拉瓦尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END