>  기사  >  백엔드 개발  >  STL을 사용하여 요인 수별로 정렬

STL을 사용하여 요인 수별로 정렬

王林
王林앞으로
2023-09-07 10:09:031197검색

STL을 사용하여 요인 수별로 정렬

STL을 사용하여 벡터를 정렬하는 것은 매우 쉽습니다. 이 작업을 수행하기 위해 유명한 sort() 함수를 사용할 수 있습니다. 진짜 도전은 각 숫자에 대한 요인의 수를 세는 것입니다.

인수는 다른 숫자를 완전히 나누는 숫자, 즉 나머지가 0인 숫자입니다.

모든 숫자를 반복하여 요인을 계산하는 것도 한 가지 방법일 수 있지만 이 문서에서는 최적화하고 효율적인 솔루션에 도달하도록 노력하겠습니다.

문제 설명

주어진 배열을 각 숫자의 인자 수에 따라 오름차순으로 정렬합니다. 따라서 요인 수가 가장 적은 숫자가 처음에 오고 요인 수가 가장 많은 숫자가 끝에 와야 합니다. 요소 개수가 동일한 숫자는 원래 배열의 순서대로 배열해야 합니다. 배열은 STL을 사용하여 정렬할 수 있습니다.

Example

의 중국어 번역은 다음과 같습니다:

Example

으아아아

따라서 요소에 따라 숫자를 오름차순으로 정렬하면 3 2 4 10 15 20이 출력됩니다.

으아아아

설명

으아아아 따라서 요소에 따라 숫자를 오름차순으로 정렬한 후 출력을 얻습니다. 19 5 9 21 12

방법

  • 각 숫자의 인수 개수를 찾아보세요.

  • 숫자 쌍과 인수 개수를 저장하는 벡터를 만듭니다.

  • 벡터를 정렬하고 결과를 반환합니다.

숫자의 인수 개수 찾기

Brute Force

의 중국어 번역은

Brute Force

입니다.

순진한 접근 방식은 1부터 n까지의 모든 숫자를 반복하여 n을 나누는지 알아내는 것입니다. 이런 식으로 각 숫자에 대한 요인 수를 계산할 수 있습니다.

Example

의 중국어 번역은 다음과 같습니다:

Example

다음은 무차별 대입을 사용하여 숫자의 모든 약수를 계산하는 C++ 프로그램입니다

으아아아

출력

으아아아

효율적인 방법

숫자의 약수는 쌍으로 존재합니다.

예를 들어 12의 약수는 1, 2, 3, 4, 6, 12입니다.

그러나 다음과 같이 시각화할 수 있습니다: (1,12), (2,6), (3,4).

따라서 제수를 찾으면 n을 거치지 않고도 다른 제수를 찾을 수도 있습니다.

따라서 효율적인 방법은 숫자의 제곱근까지 반복한 다음 쌍으로 제수를 계산하는 것입니다.

Example

의 중국어 번역은 다음과 같습니다:

Example

다음은 숫자의 제수를 계산하는 C++ 프로그램입니다

으아아아

출력

으아아아

이제 위에서 설명한 방법의 두 번째 및 세 번째 단계를 수행할 수 있습니다.

요인 수에 따라 정렬된 벡터를 인쇄하는 C++ 프로그램 예

으아아아

출력

으아아아

결론

이번 게시물에서는 정수의 인수 개수를 기준으로 벡터를 정렬했습니다.

우리는 몇 가지 예를 논의한 다음 방법에 대해 이야기했습니다.

이 문제의 핵심은 숫자의 약수를 구하는 것입니다. 이 문제를 해결하는 방법에는 무차별 대입 방법과 효율적인 방법의 두 가지가 있습니다. 우리는 두 가지 접근 방식을 모두 살펴본 다음 효율적인 접근 방식을 사용하여 최종 프로그램을 작성했습니다.

위 내용은 STL을 사용하여 요인 수별로 정렬의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제