C++ Program to Find and Print Factors of a Number

This article provides some programs in C++ that find factors of a given number. For example, if user enters 10 as input, then the program prints its factors, that will be 1, 2, 5, 10. These are the list of programs covered in this article:

  • Find factors of a number using while loop
  • Find factors of a number using for loop
  • Find factors of a number using user-defined function
  • Find factors of a number using class and object

Find Factors of a Number using while Loop

The question is, write a program in C++ that receives a number from user as input and prints all its factors as output. The answer to this question is the program given below:

#include<iostream>

using namespace std;
int main()
{
   int num, i=1;
   cout<<"Enter a Number: ";
   cin>>num;
   cout<<"\nFactors of "<<num<<" are:\n";
   while(i<=num)
   {
      if(num%i==0)
         cout<<i<<" ";
      i++;
   }
   cout<<endl;
   return 0;
}

The snapshot given below shows the initial output produced by above C++ program on finding factors of a given number:

c++ program find factors of number

Now supply the input say 100 as number and press ENTER key to find and print all its factors like shown in the snapshot given below:

find factors of given number c++

When user enters the number say 100, it gets initialized to num. Therefore num=100. Now the dry run of following block of code, from above program:

   while(i<=num)
   {
      if(num%i==0)
         cout<<i<<" ";
      i++;
   }

goes like (with initial value of i as 1, and num=100):

  • The condition i<=num or 1<=100 evaluates to be True
  • Therefore program flow goes inside the loop
  • The condition num%i==0 or 100%1==0 or 0==0 evaluates to be True
  • Therefore program flow goes inside the body of if and the cout statement gets executed, that prints the value of i and a blank space
  • So 1 gets printed
  • Now the value of i gets incremented. So i=2
  • Again the condition of while loop gets evaluated
  • That is, the condition i<=num or 2<=100 evaluates to be True again
  • Therefore program flow again goes inside the loop
  • This process continues until the condition evaluates to be False
  • In this way, all the factors of given number gets printed one by one

Find Factors of a Number using for Loop

Let's create the same program as of previous program, but using for loop this time.

#include<iostream>

using namespace std;
int main()
{
   int num, i;
   cout<<"Enter a Number: ";
   cin>>num;
   cout<<"\nFactors of "<<num<<" are:\n";
   for(i=1; i<=num; i++)
   {
      if(num%i==0)
         cout<<i<<" ";
   }
   cout<<endl;
   return 0;
}

Find Factors of a Number using Function

This program is created using a user-defined function named fact(). This function takes given number as its argument and do the same job of finding and printing the factors of passed argument.

#include<iostream>

using namespace std;
void fact(int);
int main()
{
   int num;
   cout<<"Enter a Number: ";
   cin>>num;
   cout<<"\nFactors of "<<num<<" are:\n";
   fact(num);
   cout<<endl;
   return 0;
}
void fact(int n)
{
   int i=1;
   while(i<=n)
   {
      if(n%i==0)
         cout<<i<<" ";
      i++;
   }
}

Find Factors of a Number using Class

This is the last program of this article, created using class, an object-oriented feature of C++.

#include<iostream>
using namespace std;

class CodesCracker
{
   private:
      int i;
   public:
      void fact(int n)
      {
         for(i=1; i<=n; i++)
         {
            if(n%i==0)
               cout<<i<<" ";
         }
      }
};

int main()
{
   CodesCracker obj;
   int num;
   cout<<"Enter a Number: ";
   cin>>num;
   cout<<"\nFactors of "<<num<<" are:\n";
   obj.fact(num);
   cout<<endl;
   return 0;
}

C++ Online Test


« Previous Program Next Program »