주어진 과제는 주어진 조건에서 주어진 숫자 N의 4가지 요인 A, B, C, D로부터 얻을 수 있는 최대 곱을 계산하는 것입니다 -
네 가지 요소의 합은 숫자 N과 같아야 합니다. 즉, N=A+B+C+D입니다.
입력 - N=10
출력 − 20
설명 − 10의 인수는 1, 2, 5, 10입니다.
최대 곱은 5*2*2*1=20을 곱하여 얻을 수 있으며 주어진 조건, 즉 5+2+2+1=10을 만족합니다.
입력 - N=16
출력 − 256
설명 − 16의 인수는 1, 2, 4, 8, 16입니다.
최대 곱은 4*4*4*4=256을 곱하여 얻을 수 있으며 주어진 조건, 즉 4+4+4+4=16을 만족합니다.
아래 프로그램에서 사용하는 접근 방식은 다음과 같습니다.
-
주어진 숫자의 인수를 저장하기 위해 int 유형의 배열 Factors[]를 생성하고 점유된 배열의 크기를 추적하기 위해 int 유형의 변수 K=0을 생성합니다.
-
주어진 숫자의 인수를 찾는 함수 FindFactors()를 만듭니다.
-
i=1에서 루프; i*i<=N; 아이++
-
루프 내에서 if (N%i ==0)을 설정하여 내가 요인인지 아닌지 확인합니다.
-
i가 요인이면 (N/I ==i)인지 확인하십시오. 그렇다면 i를 Factors[]에 삽입하고 그렇지 않으면 N/i와 i를 모두 Factors[]에 전달합니다.
-
Product() 함수를 생성하여 요소 중에서 최대 곱을 찾습니다.
-
int product=0 초기화; 및 크기=K+1;
-
네 개의 새로운 중첩 루프를 초기화하고 '크기'까지 실행합니다.
-
루프 내에서 초기화 int sum=Factors[i] + Factors[] + Factors[k] + Factors[l];
-
(sum ==N)인지 확인하고 그렇다면 초기화 pro=Factors[i] * Factors[j] * Factors[k] * Factors[l];
-
그런 다음 (pro> product)인지 확인하고, 그렇다면 product=pro;
를 입력하세요. -
반품 제품
예시
#include <bits/stdc++.h> using namespace std; //Array to store the factors int Factors[30]; int K=0; //Function to find out the factors int FindFactors(int N){ //Looping until i reaches the sqrt(N) for (int i = 1; i * i <= N; i++){ if (N % i == 0){ /* if both the factors are same then only one will be inserted*/ if ((N / i) == i){ Factors[K]=i; K++; } else{ //Inserting 1st factor in array Factors[K]=N/i; K++; //Inserting 2st factor in array Factors[K]=i; K++; } } } } // Function to find the maximum product int Product(int N){ int product = 0; int size = K+1; for (int i = 0; i < size; i++) for (int j = 0; j < size; j++) for (int k = 0; k < size; k++) for (int l = 0; l < size; l++){ //Adding each set of factors int sum = Factors[i] + Factors[j] + Factors[k] + Factors[l]; //Checking if the sum is equal to N if (sum == N){ //Multiplying the factors int pro = Factors[i] * Factors[j] * Factors[k] * Factors[l]; //Replacing the value of product if a larger value is found if(pro > product) product = pro; } } return product; } //Main function int main(){ int N = 10; //Calling function to find factors of N FindFactors(N); //Calling function to find the maximum product cout<<Product(N); return 0; }
출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다 -
Maximum Profit: 20