# C++ Program to Display Factors of a Natural Number

15/04/2024

Displaying the factors of a natural number involves finding all the numbers that divide the given number without leaving a remainder. Factors are integral to various mathematical calculations and are particularly interesting when exploring number theory, prime numbers, and algorithms that involve divisibility.

In this context, a factor of a number n is any integer i where n % i == 0. To find all such numbers, a straightforward approach involves iterating through all integers from 1 to n and checking if n % i == 0. If the condition holds true, i is a factor of n.

Let’s write a C++ program that takes a natural number as input from the user and displays all its factors:

#include <iostream>

using namespace std;

// Function to print the factors of a given number n

void printFactors(int n) {

cout << “The factors of ” << n << ” are: “;

for (int i = 1; i <= n; ++i) {

if (n % i == 0) {

cout << i << ” “;

}

}

cout << endl;

}

int main() {

int number;

cout << “Enter a natural number: “;

cin >> number;

// Check for natural number input

if (number < 1) {

cout << “Please enter a natural number greater than 0.” << endl;

} else {

printFactors(number);

}

return 0;

}

This program begins by prompting the user to enter a natural number. It checks whether the input is a natural number (i.e., an integer greater than 0). If the check passes, the program proceeds to find and print all the factors of the input number using the printFactors function.

Within printFactors, the program iterates from 1 to n, inclusive. For each number i in this range, it checks if n % i == 0. If the condition is true, it means i is a divisor (or factor) of n, and the program prints i.

This method is simple and effective for small to moderately sized integers. However, for very large numbers, more efficient algorithms may be necessary to reduce computational time, such as only checking up to the square root of n and adding both the divisor and the quotient when applicable.