w3resource

C++ Exercises: Number as the multiplication of its prime factors

C++ Math: Exercise-33 with Solution

Write a C++ program to count from 1 to a specified number and display each number as the product of its prime factors.

Test Data:
Display each number as the product of its prime factors:
From 1 to 23-
1: 1
2: 2
3: 3
4: 2 x 2
5: 5
6: 2 x 3
7: 7
8: 2 x 2 x 2
9: 3 x 3
10: 2 x 5
11: 11
12: 2 x 2 x 3
13: 13
14: 2 x 7
15: 3 x 5
16: 2 x 2 x 2 x 2
17: 17
18: 2 x 3 x 3
19: 19
20: 2 x 2 x 5
21: 3 x 7
22: 2 x 11
23: 23

Sample Solution:

C++ Code :

// Source: shorturl.at/bhjoP

#include <iostream>
#include <iomanip> // Library for manipulating output formatting
using namespace std;

// Function to calculate and display prime factors of a number
void getPrimeFactors(int li) {
    int f = 2;
    string res;
    if (li == 1)
        res = "1"; // For the number 1, there is only one factor which is 1 itself
    else {
        while (true) {
            if (!(li % f)) { // If 'f' is a factor of 'li'
                res += to_string(f); // Append 'f' to the result string
                li /= f;
                if (li == 1)
                    break; // If 'li' becomes 1, break the loop
                res += " x "; // Add 'x' symbol to separate factors in the string
            } else
                f++; // Move to the next number to check if it's a factor
        }
    }
    cout << res << "\n"; // Display the result string containing prime factors
}

int main(int argc, char* argv[]) {
    int n = 23; // Define the upper limit to calculate prime factors (from 1 to 'n')
    cout << "Display each number as the product of its prime factors:";
    cout << "\nFrom 1 to " << n << "-\n";

    for (int x = 1; x <= n; x++) {
        cout << right << setw(4) << x << ": "; // Output formatting to align numbers
        getPrimeFactors(x); // Call function to calculate and display prime factors
    }
    cout << endl;

    return 0;
}

Sample Output:

Display each number as the product of its prime factors:
From 1 to 23-
   1: 1
   2: 2
   3: 3
   4: 2 x 2
   5: 5
   6: 2 x 3
   7: 7
   8: 2 x 2 x 2
   9: 3 x 3
  10: 2 x 5
  11: 11
  12: 2 x 2 x 3
  13: 13
  14: 2 x 7
  15: 3 x 5
  16: 2 x 2 x 2 x 2
  17: 17
  18: 2 x 3 x 3
  19: 19
  20: 2 x 2 x 5
  21: 3 x 7
  22: 2 x 11
  23: 23

Flowchart:

Flowchart: Replace Number as the multiplication of its prime factors.

C++ Code Editor:

Contribute your code and comments through Disqus.

Previous: Number of arithmetic slices in an array of integers.

Next: Prime decomposition.

What is the difficulty level of this exercise?



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/cpp-exercises/math/cpp-math-exercise-33.php