C Program To Find Factors Of A Number

Problem Analysis

To develop a C program to find the factor of a number it is required to understand the meaning of the factor of a number. Factor of a number has following characteristics:

  • A factor of a number on division leaves no remainder.
  • A factor of a number can be even in number or odd in number.
  • Square numbers have an odd number of factors.
  • Prime number has only two factors the number itself and 1.


Factors divide numbers in such a way that it leaves no remainder. For example 12 has factors – 1,2,3,4,6 and 12.

If 12 is divided by any of the six factors the answer will be a whole number. For example – 12 / 3 = 4

Square Numbers

Square of a number is obtained by repeated multiplication of the number by itself. For example, a square of 36 is obtained by multiplying 6 two times (6 x 6) and 1 is by default.

  1 x 6 x 6 = 36

As it can be seen that 1 is also a factor of 36 it makes the number of factors odd.

1 x 6 x 6 ( 3 factors ) = 36

Prime Number

A prime number has only two factors 1 and itself. Prime number cannot be divided by another number.

Examples of prime numbers are: 2,3,5,7,11,13,17,19,23, and 29. 

1 has only one factor and it is not a prime number.

Problem Description

The problem is – “C Program to find factors of a number”.

From problem analysis it is evident that to obtain factors of a number, the number has to be divided and checked for remainder. If the remainder is 0 then the quotient is one of the facator. To obtain other factors than number has to be divided by number 1 and itself.

To repeatedly divide the number loop is to be used. There are 3 loop in C language:

  1. while loop
  2. for loop
  3. do while loop 

From these 3 loops any one of the loops can be used.

Number after division has to be checked for the remainder. If the remainder is 0 then the quotient is a factor. To check this condition if statement of  C language is to be used.

Solution to Problem

Following is the code to find factor of number:

C Program to find factor of a number

int main()
    int num_1,i;
    printf("Input positive integer");
    scanf("%d", &num_1);
    printf("Obtained factors are: %d", num_1);
        if(num_1 % i == 0)
            printf("  %d", i);
    return 0;

Input positive integer234

Obtained factors of 234 are:  1  2  3  6  9  13  18  26  39  78  117  234
Code Analysis

Input is taken from the user in integer variable num_1.
for loop is executed until i is false.
The number is divided by i and checked for remiander.
Modulo divide is used to obtain remainder by using the following code:
                             if(num_1 % i == 0)
      If the condition num % i is 0 then “i” is one of the factors.

The value of “i” is incremented by 1.


The problem was to find the factor of a number by developing a “C” program. Problem analysis section discusses the meaning of a factor of a number. Descriptions of the problem section discuss “C” programming constructs used to develop the code. Code analysis section re-visits code and discusses the working of the code.