# Power of a prime number ‘r’ in n!

Given an integer n, find the power of a given prime number(r) in n!**Examples : **

Input : n = 6 r = 3 Factorial of 6 is 720 = 2^4 * 3^2 *5 (prime factor 2,3,5) and power of 3 is 2 Output : 2 Input : n = 2000 r = 7 Output : 330

A simple method is to first calculate factorial of n, then factorize it to find the power of a prime number.

The above method can cause overflow for a slightly bigger numbers as factorial of a number is a big number. The idea is to consider prime factors of a factorial n.**Legendre Factorization of n!**

For any prime number p and any integer n, let **Vp(n)** be the exponent of the largest power of p that divides n (that is, the p-adic valuation of n). Then

Vp(n) = summation of floor(n / p^i) and i goes from 1 to infinity

While the formula on the right side is an infinite sum, for any particular values of n and p it has only finitely many nonzero terms: for every i large enough that p^i > n, one has floor(n/p^i) = 0 . since, the sum is convergent.

Power of ‘r’ in n! = floor(n/r) + floor(n/r^2) + floor(n/r^3) + ....

Program to count power of a no. r in n! based on above formula.

## C++

`// C++ program to find power of` `// a prime number ‘r’ in n!` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to return power of a` `// no. 'r' in factorial of n` `int` `power(` `int` `n, ` `int` `r)` `{ ` ` ` `// Keep dividing n by powers of` ` ` `// 'r' and update count` ` ` `int` `count = 0;` ` ` `for` `(` `int` `i = r; (n / i) >= 1; i = i * r) ` ` ` `count += n / i;` ` ` `return` `count;` `}` `// Driver program to` `// test above function` `int` `main()` `{` ` ` `int` `n = 6, r = 3; ` ` ` `printf` `(` `" %d "` `, power(n, r)); ` ` ` `return` `0;` `}` |

## Java

`// Java program to find power of` `// a prime number 'r' in n!` `class` `GFG {` ` ` `// Function to return power of a` `// no. 'r' in factorial of n` `static` `int` `power(` `int` `n, ` `int` `r) {` ` ` ` ` `// Keep dividing n by powers of` ` ` `// 'r' and update count` ` ` `int` `count = ` `0` `;` ` ` `for` `(` `int` `i = r; (n / i) >= ` `1` `; i = i * r)` ` ` `count += n / i;` ` ` `return` `count;` `}` `// Driver code` `public` `static` `void` `main(String[] args)` `{` ` ` `int` `n = ` `6` `, r = ` `3` `;` ` ` `System.out.print(power(n, r));` `}` `}` `// This code is contributed by Anant Agarwal.` |

## Python3

`# Python3 program to find power` `# of a prime number ‘r’ in n!` `# Function to return power of a` `# no. 'r' in factorial of n` `def` `power(n, r):` ` ` ` ` `# Keep dividing n by powers of` ` ` `# 'r' and update count` ` ` `count ` `=` `0` `; i ` `=` `r` ` ` ` ` `while` `((n ` `/` `i) >` `=` `1` `):` ` ` `count ` `+` `=` `n ` `/` `i` ` ` `i ` `=` `i ` `*` `r` ` ` ` ` `return` `int` `(count)` `# Driver Code` `n ` `=` `6` `; r ` `=` `3` `print` `(power(n, r))` `# This code is contributed by Smitha Dinesh Semwal.` |

## C#

`// C# program to find power of` `// a prime number 'r' in n!` `using` `System;` `class` `GFG {` ` ` `// Function to return power of a` `// no. 'r' in factorial of n` `static` `int` `power(` `int` `n, ` `int` `r) {` ` ` ` ` `// Keep dividing n by powers of` ` ` `// 'r' and update count` ` ` `int` `count = 0;` ` ` `for` `(` `int` `i = r; (n / i) >= 1; i = i * r)` ` ` `count += n / i;` ` ` `return` `count;` `}` `// Driver code` `public` `static` `void` `Main()` `{` ` ` `int` `n = 6, r = 3;` ` ` `Console.WriteLine(power(n, r));` `}` `}` `// This code is contributed by vt_m.` |

## PHP

`<?php` `//PHP program to find power of` `// a prime number ‘r’ in n!` `// Function to return power of a` `// no. 'r' in factorial of n` `function` `power(` `$n` `, ` `$r` `)` `{ ` ` ` ` ` `// Keep dividing n by powers ` ` ` `// of 'r' and update count` ` ` `$count` `= 0;` ` ` `for` `(` `$i` `= ` `$r` `; (` `$n` `/ ` `$i` `) >= 1;` ` ` `$i` `= ` `$i` `* ` `$r` `)` ` ` `$count` `+= ` `$n` `/ ` `$i` `;` ` ` `return` `$count` `;` `}` ` ` `// Driver Code` ` ` `$n` `= 6; ` `$r` `= 3;` ` ` `echo` `power(` `$n` `, ` `$r` `);` `// This code is contributed by ajit` `?>` |

## Javascript

`<script>` `// JavaScript program to find power of` `// a prime number 'r' in n!` `// Function to return power of a` `// no. 'r' in factorial of n` `function` `power(n, r) {` ` ` ` ` `// Keep dividing n by powers of` ` ` `// 'r' and update count` ` ` `let count = 0;` ` ` `for` `(let i = r; (n / i) >= 1; i = i * r)` ` ` `count += n / i;` ` ` `return` `count;` `}` `// Driver code` ` ` `let n = 6, r = 3;` ` ` `document.write(power(n, r));` `// This code is contributed by souravghosh0416.` `</script>` |

**Output:**

2

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**