Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 제수 목록에서 A와 B 찾기

<시간/>

이 튜토리얼에서는 아래의 문제를 풀 것입니다.

정수 배열이 주어지면 두 개의 숫자 A와 B를 찾아야 합니다. 배열의 나머지 숫자는 모두 A와 B의 제수입니다.

숫자가 A와 B의 제수이면 배열에 두 번 나타납니다.

문제를 해결하는 단계를 살펴보겠습니다.

  • 배열의 최대 숫자는 A와 B의 숫자 중 하나입니다. A라고 합시다.

  • 이제 B는 두 번째로 큰 숫자 또는 A의 약수가 아닌 숫자가 됩니다.

예시

코드를 봅시다.

#include <bits/stdc++.h>
using namespace std;
void findTheDivisors(int arr[], int n) {
   sort(arr, arr + n);
   int A = arr[n - 1], B = -1;
   for (int i = n - 2; i > -1; i--) {
      if (A % arr[i] != 0) {
         B = arr[i];
         break;
      }
      if (i - 1 >= 0 && arr[i] == arr[i - 1]) {
         B = arr[i];
         break;
      }
   }
   cout << "A = " << A << ", B = " << B << endl;
}
int main() {
   int arr[] = { 3, 2, 3, 4, 12, 6, 1, 1, 2, 6 };
   findTheDivisors(arr, 10);
   return 0;
}

출력

위의 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

A = 12, B = 6

결론

튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.