Given a number . The task is to find the largest factor of that number which is a perfect square.
Input : N = 420 Output : 4 Input : N = 100 Output : 100
A Simple Solution is to traverse all of the numbers in decreasing order from the given number down till 1 and if any of these numbers is a factor of the given number and is also a perfect square, print that number.
Time Complexity: O(N)
Better Solution : A better solution is to use prime factorization of the given number.
- First find all the prime factors of that number till sqrt(num).
- Take a variable, answer and initialize it to 1. It represents the largest square number which is also a factor of that number.
- Now, Check If any prime number occurs even number of times in the prime factorization of the given number, if yes then multiply the answer with that prime factor the number of times it occurs.
- Else, if it occurs odd number of times then multiply the answer with prime number (K – 1) times, K is the frequency of that prime factor in the prime factorization.
Below is the implementation of the above approach:
Time Complexity: O( sqrt(N) )
- Find smallest perfect square number A such that N + A is also a perfect square number
- Check if a number is a perfect square having all its digits as a perfect square
- Count numbers upto N which are both perfect square and perfect cube
- Largest N digit Octal number which is a Perfect square
- Number of times the largest perfect square number can be subtracted from N
- Check if a number is perfect square without finding square root
- Smallest N digit number whose sum of square of digits is a Perfect Square
- Largest number that is not a perfect square
- Largest perfect square number in an Array
- Largest Divisor of a Number not divisible by a perfect square
- Find the Largest N digit perfect square number in Base B
- Maximum subsequence sum from a given array which is a perfect square
- Find largest prime factor of a number
- Sum of largest prime factor of each number less than equal to n
- Largest square which can be formed using given rectangular blocks
- Check if given number is perfect square
- Find the Next perfect square greater than a given number
- Probability of getting a perfect square when a random number is chosen in a given range
- Check if a given number is a Perfect square using Binary Search
- Find minimum number to be divided to make a number a perfect square
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.