Найдите сумму числа и его максимальный простой множитель

Опубликовано: 30 Декабря, 2021

Учитывая целое число N , задача состоит в том, чтобы найти сумму N и его максимальный простой множитель.
Примеры:

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

Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.

Подход: найдите наибольший простой множитель числа и сохраните его в maxPrimeFact, затем распечатайте значение N + maxPrimeFact .
Ниже представлена реализация описанного выше подхода:

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;
sum; return
}
// Driver Program to check the above function.
int main()
{
int n = 19;
cout << maxPrimeFactors(n);
return 0;
}

Джава

// 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;
sum; return
}
// 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
sum return
# 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;
sum; return
}
// 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;
sum; return
}
// Driver Code
var n = 19;
document.write(maxPrimeFactors(n));
// This code contributed by shikhasingrajput
</script>
Выход:
 38

Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по доступной для студентов цене и будьте готовы к работе в отрасли. Получите все важные математические концепции для соревновательного программирования с курсом Essential Maths for CP по доступной для студентов цене.

Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.