Find sum of a number and its maximum prime factor

• Difficulty Level : Medium
• Last Updated : 05 May, 2021

Given an integer N, the task is to find the sum of N and it’s maximum prime factor.
Examples:

Input: 19
Output: 38
Maximum prime factor of 19 is 19.
Hence, 19 + 19 = 38
Input:
Output: 10
8 + 2 = 10

Approach: Find the largest prime factor of the number and store it in maxPrimeFact then print the value of N + maxPrimeFact.
Below is the implementation of the above approach:

C++

 // C++ program to find sum of n and// it's largest prime factor#include #include using namespace std; // Function to return the sum of n and// it's largest prime factorint maxPrimeFactors(int n){    int num = n;     // Initialise maxPrime to -1.    int maxPrime = -1;     while (n % 2 == 0) {        maxPrime = 2;        n /= 2;    }     // n must be odd at this point, thus skip    // the even numbers and iterate only odd numbers    for (int i = 3; i <= sqrt(n); i += 2) {        while (n % i == 0) {            maxPrime = i;            n = n / i;        }    }     // This condition is to handle the case    // when n is a prime number greater  than 2    if (n > 2)        maxPrime = n;     // finally return the sum.    int sum = maxPrime + num;    return sum;} // Driver Program to check the above function.int main(){    int n = 19;     cout << maxPrimeFactors(n);    return 0;}

Java

 // Java program to find sum of n and// it's largest prime factorimport java.io.*; class GFG{ // Function to return the sum of n// and it's largest prime factorstatic int maxPrimeFactors(int n){int num = n; // Initialise maxPrime to -1.int maxPrime = -1; while (n % 2 == 0){maxPrime = 2;n /= 2;} // n must be odd at this point,// thus skip the even numbers and// iterate only odd numbersfor (int i = 3; i <= Math.sqrt(n); i += 2) {         while (n % i == 0) {        maxPrime = i; n = n / i;        }     }        // This condition is to handle the case        // when n is a prime number greater than 2        if (n > 2) {            maxPrime = n;        }// finally return the sum.int sum = maxPrime + num;return sum;} // Driver Codepublic static void main (String[] args){int n = 19; System.out.println(maxPrimeFactors(n));}}// This code is contributed by anuj_67

Python3

 # Python 3 program to find sum of n and# it's largest prime factorfrom math import sqrt # Function to return the sum of n and# it's largest prime factordef maxPrimeFactors(n):    num = n     # Initialise maxPrime to -1.    maxPrime = -1;     while (n % 2 == 0):        maxPrime = 2        n = n / 2         # n must be odd at this point, thus skip    # the even numbers and iterate only odd numbers    p = int(sqrt(n) + 1)    for i in range(3, p, 2):        while (n % i == 0):            maxPrime = i            n = n / i             # This condition is to handle the case    # when n is a prime number greater than 2    if (n > 2):        maxPrime = n     # finally return the sum.    sum = maxPrime + num    return sum # Driver Codeif __name__ == '__main__':    n = 19     print(maxPrimeFactors(n)) # This code is contributed by# Surendra_Gangwar

C#

 // C# program to find sum of n and// it's largest prime factorusing System; class GFG{// Function to return the sum of n// and it's largest prime factorstatic int maxPrimeFactors(int n){int num = n; // Initialise maxPrime to -1.int maxPrime = -1; while (n % 2 == 0){    maxPrime = 2;    n /= 2;} // n must be odd at this point,// thus skip the even numbers and// iterate only odd numbersfor (int i = 3;         i <= Math.Sqrt(n); i += 2){         while (n % i == 0)    {        maxPrime = i; n = n / i;    }     } // This condition is to handle the case// when n is a prime number greater than 2if (n > 2){    maxPrime = n;} // finally return the sum.int sum = maxPrime + num;return sum;} // Driver Codestatic void Main (){    int n = 19;         Console.WriteLine(maxPrimeFactors(n));}} // This code is contributed by Ryuga

PHP

 2)        \$maxPrime = \$n;     // finally return the sum.    \$sum = \$maxPrime + \$num;    return \$sum;} // Driver Code\$n = 19; echo maxPrimeFactors(\$n); // This code is contributed// by inder_verma?>

Javascript


Output:
38

My Personal Notes arrow_drop_up