Найдите сумму числа и его максимальный простой множитель
Учитывая целое число N , задача состоит в том, чтобы найти сумму N и его максимальный простой множитель.
Примеры:
Input: 19
Output: 38
Maximum prime factor of 19 is 19.
Hence, 19 + 19 = 38
Input: 8
Output: 10
8 + 2 = 10
Подход: найдите наибольший простой множитель числа и сохраните его в 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 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; 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 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;sum; return}// 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 sum return# 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;sum; return}// Driver Codestatic 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 factorfunction 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 factorfunction 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 Codevar 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.