Given a number N, print all the prime factors and their powers. Here N <= 10^18**Examples :**

Input : 250 Output : 2 1 5 3 Explanation: The prime factors of 250 are 2 and 5. 2 appears once in the prime factorization of and 5 is thrice in it. Input : 1000000000000000000 Output : 2 18 5 18 Explanation: The prime factors of 1000000000000000000 are 2 and 5. The prime factor 2 appears 18 times in the prime factorization. 5 appears 18 times.

We cannot use Sieve’s implementation for a single large number as it requires proportional space. We first count the number of times 2 is the factor of the given number, then we iterate from **3 to Sqrt(n)** to get the number of times a prime number divides a particular number which reduces every time by n/i. We divide our number n (whose prime factorization is to be calculated) by its corresponding smallest prime factor till n becomes 1. And if at the end n>2, it means it’s a prime number, so we print that particular number.

## C++

`// CPP program to print prime factors and their` `// powers.` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// function to calculate all the prime factors and` `// count of every prime factor` `void` `factorize(` `long` `long` `n)` `{` ` ` `int` `count = 0;` ` ` `// count the number of times 2 divides` ` ` `while` `(!(n % 2)) {` ` ` `n >>= 1; ` `// equivalent to n=n/2;` ` ` `count++;` ` ` `}` ` ` `// if 2 divides it` ` ` `if` `(count)` ` ` `cout << 2 << ` `" "` `<< count << endl;` ` ` `// check for all the possible numbers that can` ` ` `// divide it` ` ` `for` `(` `long` `long` `i = 3; i <= ` `sqrt` `(n); i += 2) {` ` ` `count = 0;` ` ` `while` `(n % i == 0) {` ` ` `count++;` ` ` `n = n / i;` ` ` `}` ` ` `if` `(count)` ` ` `cout << i << ` `" "` `<< count << endl;` ` ` `}` ` ` `// if n at the end is a prime number.` ` ` `if` `(n > 2)` ` ` `cout << n << ` `" "` `<< 1 << endl;` `}` `// driver program to test the above function` `int` `main()` `{` ` ` `long` `long` `n = 1000000000000000000;` ` ` `factorize(n);` ` ` `return` `0;` `}` |

## Java

`//Java program to print prime` `// factors and their powers.` `class` `GFG {` `// function to calculate all the` `// prime factors and count of` `// every prime factor` ` ` `static` `void` `factorize(` `long` `n) {` ` ` `int` `count = ` `0` `;` ` ` `// count the number of times 2 divides` ` ` `while` `(!(n % ` `2` `> ` `0` `)) {` ` ` `// equivalent to n=n/2;` ` ` `n >>= ` `1` `;` ` ` `count++;` ` ` `}` ` ` `// if 2 divides it` ` ` `if` `(count > ` `0` `) {` ` ` `System.out.println(` `"2"` `+ ` `" "` `+ count);` ` ` `}` ` ` `// check for all the possible` ` ` `// numbers that can divide it` ` ` `for` `(` `long` `i = ` `3` `; i <= (` `long` `) Math.sqrt(n); i += ` `2` `) {` ` ` `count = ` `0` `;` ` ` `while` `(n % i == ` `0` `) {` ` ` `count++;` ` ` `n = n / i;` ` ` `}` ` ` `if` `(count > ` `0` `) {` ` ` `System.out.println(i + ` `" "` `+ count);` ` ` `}` ` ` `}` ` ` `// if n at the end is a prime number.` ` ` `if` `(n > ` `2` `) {` ` ` `System.out.println(n + ` `" "` `+ ` `"1"` `);` ` ` `}` ` ` `}` ` ` `public` `static` `void` `main(String[] args) {` ` ` `long` `n = 1000000000000000000L;` ` ` `factorize(n);` ` ` `}` `}` `/*This code is contributed by 29AjayKumar*/` |

## Python3

`# Python3 program to print prime factors` `# and their powers.` `import` `math` `# Function to calculate all the prime` `# factors and count of every prime factor` `def` `factorize(n):` ` ` `count ` `=` `0` `;` ` ` `# count the number of` ` ` `# times 2 divides` ` ` `while` `((n ` `%` `2` `> ` `0` `) ` `=` `=` `False` `):` ` ` ` ` `# equivalent to n = n / 2;` ` ` `n >>` `=` `1` `;` ` ` `count ` `+` `=` `1` `;` ` ` `# if 2 divides it` ` ` `if` `(count > ` `0` `):` ` ` `print` `(` `2` `, count);` ` ` `# check for all the possible` ` ` `# numbers that can divide it` ` ` `for` `i ` `in` `range` `(` `3` `, ` `int` `(math.sqrt(n)) ` `+` `1` `):` ` ` `count ` `=` `0` `;` ` ` `while` `(n ` `%` `i ` `=` `=` `0` `):` ` ` `count ` `+` `=` `1` `;` ` ` `n ` `=` `int` `(n ` `/` `i);` ` ` `if` `(count > ` `0` `):` ` ` `print` `(i, count);` ` ` `i ` `+` `=` `2` `;` ` ` `# if n at the end is a prime number.` ` ` `if` `(n > ` `2` `):` ` ` `print` `(n, ` `1` `);` `# Driver Code` `n ` `=` `1000000000000000000` `;` `factorize(n);` `# This code is contributed by mits` |

## C#

`// C# program to print prime` `// factors and their powers.` `using` `System;` `public` `class` `GFG` `{` `// function to calculate all the` `// prime factors and count of` `// every prime factor` `static` `void` `factorize(` `long` `n)` `{` ` ` `int` `count = 0;` ` ` `// count the number of times 2 divides` ` ` `while` `(! (n % 2 > 0))` ` ` `{` ` ` `// equivalent to n=n/2;` ` ` `n >>= 1;` ` ` ` ` `count++;` ` ` `}` ` ` `// if 2 divides it` ` ` `if` `(count > 0)` ` ` `Console.WriteLine(` `"2"` `+ ` `" "` `+count);` ` ` `// check for all the possible` ` ` `// numbers that can divide it` ` ` `for` `(` `long` `i = 3; i <= (` `long` `)` ` ` `Math.Sqrt(n); i += 2)` ` ` `{` ` ` `count = 0;` ` ` `while` `(n % i == 0) {` ` ` `count++;` ` ` `n = n / i;` ` ` `}` ` ` `if` `(count > 0)` ` ` `Console.WriteLine(i + ` `" "` `+ count);` ` ` `}` ` ` `// if n at the end is a prime number.` ` ` `if` `(n > 2)` ` ` `Console.WriteLine(n +` `" "` `+ ` `"1"` `);` `}` ` ` `// Driver Code` ` ` `static` `public` `void` `Main ()` ` ` `{` ` ` `long` `n = 1000000000000000000;` ` ` `factorize(n);` ` ` ` ` `}` `}` `// This code is contributed by vt_m.` |

## PHP

`<?php` `// PHP program to print prime` `// factors and their powers.` `// function to calculate all` `// the prime factors and count` `// of every prime factor` `function` `factorize(` `$n` `)` `{` ` ` `$count` `= 0;` ` ` `// count the number of` ` ` `// times 2 divides` ` ` `while` `(!(` `$n` `% 2))` ` ` `{` ` ` `// equivalent to n = n / 2;` ` ` `$n` `>>= 1;` ` ` `$count` `++;` ` ` `}` ` ` `// if 2 divides it` ` ` `if` `(` `$count` `)` ` ` `echo` `(2 . ` `" "` `. ` `$count` `. ` `"\n"` `);` ` ` `// check for all the possible` ` ` `// numbers that can divide it` ` ` `for` `(` `$i` `= 3; ` `$i` `<= sqrt(` `$n` `); ` `$i` `+= 2)` ` ` `{` ` ` `$count` `= 0;` ` ` `while` `(` `$n` `% ` `$i` `== 0)` ` ` `{` ` ` `$count` `++;` ` ` `$n` `= ` `$n` `/ ` `$i` `;` ` ` `}` ` ` `if` `(` `$count` `)` ` ` `echo` `(` `$i` `. ` `" "` `. ` `$count` `);` ` ` `}` ` ` `// if n at the end is a prime number.` ` ` `if` `(` `$n` `> 2)` ` ` `echo` `(` `$n` `. ` `" "` `. 1);` `}` `// Driver Code` `$n` `= 1000000000000000000;` `factorize(` `$n` `);` `// This code is contributed by Ajit.` `?>` |

## Javascript

`<script>` `// JavaScript program to print prime factors and their` `// powers.` `// function to calculate all the prime factors and` `// count of every prime factor` `function` `factorize(n)` `{` ` ` `var` `count = 0;` ` ` `// count the number of times 2 divides` ` ` `while` `((n % 2)==0) {` ` ` `n = parseInt(n/2) ` `// equivalent to n=n/2;` ` ` `count++;` ` ` `}` ` ` ` ` `// if 2 divides it` ` ` `if` `(count)` ` ` `document.write( 2 + ` `" "` `+ count + ` `"<br>"` `);` ` ` `// check for all the possible numbers that can` ` ` `// divide it` ` ` `for` `(` `var` `i = 3; i <= parseInt(Math.sqrt(n)); i += 2) {` ` ` `count = 0;` ` ` `while` `(n % i == 0) {` ` ` `count++;` ` ` `n = parseInt(n / i);` ` ` `}` ` ` `if` `(count!=0)` ` ` `document.write( i + ` `" "` `+ count + ` `"<br>"` `);` ` ` `}` ` ` `// if n at the end is a prime number.` ` ` `if` `(n > 2)` ` ` `document.write( n + ` `" "` `+ 1 + ` `"<br>"` `);` `}` `// driver program to test the above function` `var` `n = 1000000000000000000;` `factorize(n);` `</script>` |

**Output:**

2 18 5 18

**Time complexity : **O(sqrt(n)).

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****.**