How to check if a number is an Armstrong number or not in Swift

1 Answer

0 votes
// An Armstrong number of three digits is an integer that the sum 
// of the cubes of its digits Is equal to the number itself
 
// 371 Is an Armstrong number 3**3 + 7**3 + 1**3 = 371
    
import Foundation

func armstrong(_ n: Int) -> Int {
    var reminder = 0, sum = 0
    let totalDigits = String(n).count
    
    var number = n
    while number > 0 {
        reminder = number % 10
        sum += Int(pow(Double(reminder), Double(totalDigits)))
        number /= 10
    }
    
    return sum
}

var n = 153 // 1*1*1 + 5*5*5 + 3*3*3 = 153
if n == armstrong(n) {
    print("Armstrong number")
} else {
    print("Not armstrong number")
}

n = 9474 // 9*9*9*9 + 4*4*4*4 + 7*7*7*7 + 4*4*4*4 =  9474
if n == armstrong(n) {
    print("Armstrong number")
} else {
    print("Not armstrong number")
}




/*
run:

Armstrong number
Armstrong number

*/

 



answered Dec 27, 2024 by avibootz

Related questions

1 answer 95 views
1 answer 107 views
1 answer 137 views
1 answer 123 views
1 answer 228 views
...