Define a function to count the number of factor of a number in php

Home » PHP » PHP programs

In this article, we are going to learn how to create a function in PHP that will help us calculate factors of any given number?
Submitted by Kongnyu Carine, on January 10, 2021

For instance, if we have to list the factors of a number y. Then, we have to look for all possible numbers within the range 0 to the number y (with 0 exclusive because we do not divide a number by 0) that gives no remainder when it divides y.

Example:

Input 6
Output {1,2,3,4,5,6,}.

Let's Write out a PHP function to do this for us:

Program/Source Code:


//We Define a function that gets
//an argument and return the factors
//of the number it got.
// Function definition
function factors_of_a_number($n)
{
    if ($n == 0)
    {
        // because we cannot divide 0/0 does not exist
        echo "Zero has no factors";
    }
    else
    {
        // format our answer to look good.
        print_r("The factors of $n are {");
        //We will use a for loop to loop through
        // each number in the series  1 to our number $n
        // dividing $n by each number
        for ($x = 1;$x <= $n;$x++)
        {
            // the modulus operator
            // helps us get the remainder of each division
            $factor = $n % $x;

            //we will check to see which number return a 0 as reminder
            // the we echo that number because it is a factor of our number $n.
            if ($factor == 0)
            {
                print_r($x . ",");
            }
        }
        print_r("}");
    }
}
print_r(factors_of_a_number(0) . "\n");
print_r(factors_of_a_number(50) . "\n");
?>

Output:

Zero has no factors
The factors of 50 are {1,2,5,10,25,50,}

PHP Basic Programs »



Objective: Write a PHP program to find all distinct factors (divisors) of a given natural number. The divisors of few numbers are given below:

 Number: 10
 Divisors: 1 2 5 10

 Number: 15
 Divisors: 1 3 5 15

 Number: 100
 Divisors: 1 2 4 5 10 20 25 50 100 


Method 1: Using iteration

One of the basic approach is to iterate from 1 to n and in each iteration check whether the number divides n. If it divides then print it.

The above code will give the following output:

Divisors of 10 are: 1 2 5 10 
Divisors of 50 are: 1 2 5 10 25 50 
Divisors of 100 are: 1 2 4 5 10 20 25 50 100 


Method 2: Optimized Code

Instead of checking the divisibility of the given number from 1 to n, it is checked till square root of n. For a factor larger than square root of n, there must the a smaller factor which is already checked in the range of 1 to square root of n.

The above code will give the following output:

Divisors of 10 are: 1 10 2 5 
Divisors of 50 are: 1 50 2 25 5 10 
Divisors of 100 are: 1 100 2 50 4 25 5 20 10 


Method 3: Optimized Code with sorted result

In the previous method, results are produced in a irregular fashion (printed in pairs - small number and large number). The result can be sorted by storing the larger number and print them later on. Consider the example below:

= 0; $i--)
    echo $arr[$i]." ";
  echo "\n";
}

printDivisors(10);
printDivisors(50);
printDivisors(100);
?>

The above code will give the following output:

Divisors of 10 are: 1 2 5 10 
Divisors of 50 are: 1 2 5 10 25 50 
Divisors of 100 are: 1 2 4 5 10 20 25 50 100 


Method 4: Another Optimized Code

To produce the result in sorted order, we can iterate from 1 to square root of n and printing the number which divides n. After that we can iterate back (in reverse order) and printing the quotient of all numbers which divides n.

= 1; $i--) {
    if($n%$i == 0) 
      echo $n/$i." ";
  }  
  echo "\n";
}

printDivisors(10);
printDivisors(50);
printDivisors(100);
?>

The above code will give the following output:

Divisors of 10 are: 1 2 5 10 
Divisors of 50 are: 1 2 5 10 25 50 
Divisors of 100 are: 1 2 4 5 10 20 25 50 100 




  • PHP Program - To Check Prime Number
  • PHP Program - Bubble Sort
  • PHP Program - Selection Sort
  • PHP Program - Maximum Subarray Sum
  • PHP Program - Reverse digits of a given Integer
  • PHP Program - Merge Sort
  • PHP Program - Shell Sort
  • Stack in PHP
  • Queue in PHP
  • PHP Program - Find LCM of Two Numbers
  • PHP Program - To Check Whether a Number is Palindrome or Not
  • PHP Program - To Check Whether a String is Palindrome or Not
  • PHP Program - Heap Sort
  • PHP Program - Quick Sort
  • PHP - Swap Two Numbers without using Temporary Variable
  • PHP Program - To Check Armstrong Number
  • PHP Program - Counting Sort
  • PHP Program - Radix Sort
  • PHP Program - Find Largest Number among Three Numbers
  • PHP Program - Print Floyd's Triangle

How do you find the factors of a number in PHP?

PHP Program - Find all factors of a Number php //function to print all divisors of a number function printDivisors($n) { echo "Divisors of $n are: "; for($i = 1; $i <= $n; $i++) { if($n%$i == 0) echo "$i "; } echo "\n"; } printDivisors(10); printDivisors(50); printDivisors(100); ?>

How do you count the number of factors?

Finding the Number of Factors Step 1: Do the prime factorization of the given number, i.e., express it as the product of primes. Step 3: Write the prime factorization in the exponent form. Step 3: Add 1 to each of the exponents. Step 4: Multiply all the resultant numbers.

How do you find the factors of a number in CPP?

It is called from the main() function with one parameter i.e. “num”. factors(num); The for loop in the function factors() runs from 1 to num. The number is divided by i and if the remainder is 0, then i is a factor of “num” and is printed.

How do you count the number of factors in Java?

Here are a few methods to Find the Factors of a Number in Java Language,.
Method 1: Using Range as [ 2, number ].
Method 2: Using Range as [ 2, number/2].
Method 3: Using Range as [2, Sqrt( number ) ].
Method 4: Using Range as [2, Sqrt( number ) ] Updated..
Method 5: Update for negative numbers..