Armstrong Number
An Armstrong number equals the sum of each of its digits raised to the power of the number of digits (e.g. 153 = 1^3 + 5^3 + 3^3).
Sample input
153
Sample output
true
Solution
def is_armstrong(n):
digits = str(n)
power = len(digits)
total = sum(int(d) ** power for d in digits)
return total == n
print(is_armstrong(153))
function isArmstrong(n) {
const digits = String(n);
const power = digits.length;
let total = 0;
for (const d of digits) total += Math.pow(Number(d), power);
return total === n;
}
console.log(isArmstrong(153));
public class Main {
static boolean isArmstrong(int n) {
String digits = String.valueOf(n);
int power = digits.length();
int total = 0;
for (char c : digits.toCharArray()) {
total += (int) Math.pow(c - '0', power);
}
return total == n;
}
public static void main(String[] args) {
System.out.println(isArmstrong(153));
}
}
fun isArmstrong(n: Int): Boolean {
val digits = n.toString()
val power = digits.length
var total = 0
for (ch in digits) {
total += Math.pow((ch - '0').toDouble(), power.toDouble()).toInt()
}
return total == n
}
fun main() {
println(isArmstrong(153))
}
import Foundation
func isArmstrong(_ n: Int) -> Bool {
let digits = String(n)
let power = digits.count
var total = 0
for ch in digits {
let d = Int(String(ch))!
total += Int(pow(Double(d), Double(power)))
}
return total == n
}
print(isArmstrong(153))
import 'dart:math';
bool isArmstrong(int n) {
String digits = n.toString();
int power = digits.length;
int total = 0;
for (var ch in digits.split('')) {
total += pow(int.parse(ch), power).toInt();
}
return total == n;
}
void main() {
print(isArmstrong(153));
}
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
bool isArmstrong(int n) {
string digits = to_string(n);
int power = digits.size();
int total = 0;
for (char c : digits) {
total += (int) pow(c - '0', power);
}
return total == n;
}
int main() {
cout << (isArmstrong(153) ? "true" : "false") << endl;
return 0;
}
#include <stdio.h>
#include <math.h>
#include <string.h>
int isArmstrong(int n) {
char digits[20];
sprintf(digits, "%d", n);
int power = strlen(digits);
int total = 0;
for (int i = 0; digits[i]; i++) {
total += (int) pow(digits[i] - '0', power);
}
return total == n;
}
int main() {
printf("%s\n", isArmstrong(153) ? "true" : "false");
return 0;
}