阿姆斯特朗数字程序

给定一个数字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
喜欢就支持一下吧
点赞13 分享