Armstrong Number

Medium Numbers
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;
}