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: 8
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 <cmath> #include <iostream> using namespace std;
// Function to return the sum of n and // it's largest prime factor 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 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 factor import java.io.*;
class GFG
{ // Function to return the sum of n // and it's largest prime factor static 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 numbers for ( 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 Code public 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 factor from math import sqrt
# Function to return the sum of n and # it's largest prime factor def 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 Code if __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 factor using System;
class GFG
{ // Function to return the sum of n // and it's largest prime factor static 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 numbers for ( 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 Code static void Main ()
{ int n = 19;
Console.WriteLine(maxPrimeFactors(n));
} } // This code is contributed by Ryuga |
PHP
<?php // PHP program to find sum of n and // it's largest prime factor // Function to return the sum of n // and it's largest prime factor function maxPrimeFactors( $n )
{ $num = $n ;
// Initialise maxPrime to -1.
$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 ( $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.
$sum = $maxPrime + $num ;
return $sum ;
} // Driver Code $n = 19;
echo maxPrimeFactors( $n );
// This code is contributed // by inder_verma ?> |
Javascript
<script> // Javascript program to find sum of n and // it's largest prime factor // Function to return the sum of n // and it's largest prime factor function maxPrimeFactors(n)
{ var num = n;
// Initialise maxPrime to -1.
var maxPrime = -1;
while (n % 2 == 0)
{
maxPrime = 2;
n = parseInt(n/2);
}
// n must be odd at this point,
// thus skip the even numbers and
// iterate only odd numbers
for ( var i = 3; i <= parseInt(Math.sqrt(n)); i += 2)
{
while (n % i == 0) {
maxPrime = i;
n = parseInt(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.
var sum = maxPrime + num;
return sum;
} // Driver Code var n = 19;
document.write(maxPrimeFactors(n)); // This code contributed by shikhasingrajput </script> |
Output:
38
Time Complexity: O(sqrtn*logn)
Auxiliary Space: O(1)
Recommended Articles