Print The First n strong Numbers in C++

First n strong Numbers

Today in this page we will be discussing the code to print First n strong Numbers in C++ programming language.

Strong number is a special number whose sum of the factorial of digits is equal to the original number.

For Example: 145 is strong number. Since, 1! + 4! + 5! = 145.

Strong Numbers in a Given Range

The idea is to iterate from (1, N)  and check if any number between the range is a strong number or not. If yes then print the corresponding number, else we need to check for the next number.

Let’s understand this with help of some examples.

Input: N = 100 
Output: 1 2 145 
Explanation: 
Only 1, 2 and 145 are the strong numbers from 1 to 100 because 
1! = 1, 
2! = 2, and 
(1! + 4! + 5!) = 145 

First N Strong Numbers C++ Code

Run
#include <bits/stdc++.h>
int factorial[] = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880};

bool isStrong(int N) {
    string num = to_string(N);
    int sum = 0;
    for (int i = 0; i < num.length(); i++) {
        sum += factorial[num[i] - '0'];
    }
    return sum == N;
}

void printStrongNumbers(int N) {
    for (int i = 1; i <= N; i++) {
        if (isStrong(i)) {
            cout << i << " ";
        }
    }
}

int main() {
    // Given number
    int N = 200;
    cout << "All Strong numbers less than or equal to N: "
    printStrongNumbers(N);
    return 0;
}
all Strong numbers less than or equal to N: 1 2 145