>백엔드 개발 >C++ >N개의 숫자를 곱한 인수의 수

N개의 숫자를 곱한 인수의 수

WBOY
WBOY앞으로
2023-08-30 17:37:06701검색

N개의 숫자를 곱한 인수의 수

숫자의 제수는 나머지 없이 정수로 나눌 수 있는 숫자입니다. 즉, 숫자 n의 제수는 다른 정수와 곱할 때 n을 제공하는 숫자입니다. 숫자의 요소라고도 할 수 있습니다.

으아아아

예를 들어 5를 60으로 나누면 12가 되고 그 반대의 경우도 마찬가지이므로 12와 60은 60의 약수로 간주될 수 있습니다.

요소 수에 N개 숫자를 곱한 값

주어진 작업은 주어진 숫자의 곱의 약수를 구하는 것입니다. 예를 통해 이 문제를 이해해 보자.

숫자 6, 6, 10이 주어졌다고 가정해 보세요. 이 숫자들의 곱은 120이고, 120의 약수는 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 24, 30, 40, 60, 120입니다. 따라서 출력은 16이어야 합니다.

으아아아

모듈로 연산자를 사용하세요

이를 달성하는 한 가지 방법은 modulo(%) 연산자를 사용하여 제수를 찾고 1부터 product까지 반복하여 개수를 계산하는 것입니다.

모듈로 연산자(%) 연산자는 나눗셈 연산의 나머지를 구하는 데 사용됩니다. 나눗셈의 나머지가 0이면 피제수가 나눗수로 나누어진다는 의미입니다. 예를 들어 (30 % 5)는 0이므로 30은 5로 나누어집니다.

배열에 있는 모든 숫자의 곱의 약수를 계산하세요.

  • multiplication 연산자를 사용하여 배열의 모든 숫자를 곱하고 그 결과를 product라는 변수에 저장합니다.

  • 모듈로 연산자를 사용하여 1부터 Product까지 Product를 각 숫자로 나누고 나머지를 구합니다.

  • 변수 count를 생성하고 나머지가 0이면 count변수를 증가시킵니다.

Example

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

Example

다음 프로그램은 주어진 숫자의 곱의 약수를 계산합니다 −

으아아아

출력

으아아아

Note− 이 방법은 숫자가 클 경우 매우 비효율적입니다. 숫자가 크기 때문에 제품도 커질 것입니다. 이로 인해 반복 횟수가 많아지고 시간 복잡성이 증가합니다.

소인수 분해를 사용하세요

N이 합성수라면

으아아아

a, b, c가 소인수인 경우 N의 약수는 다음 공식으로 계산됩니다

으아아아

위 개념을 사용하여 N개 숫자의 곱의 약수를 찾습니다.

알고리즘/단계

  • 모든 N개의 숫자를 곱하고 그 결과를 product라는 변수에 저장합니다.

  • 2부터 제곱근 product까지 for 루프를 반복합니다.

  • 제품의 소인수를 구하세요. 이를 위해 모듈로 연산자를 사용하여 product 가 현재 x 값으로 나누어지는지 확인합니다. 가능하다면 x는 소인수로 저장되고 count 는 소인수의 거듭제곱으로 저장됩니다.

  • 라이브러리와 push_back() 함수를 사용하여 벡터 컨테이너 primeFactorpower에 소인수와 해당 지수를 저장합니다.

  • 남은 소인수가 있으면 함께 저장하세요.

  • 0부터 소인수의 수까지 반복하고 위 공식을 사용하여 제수를 계산합니다.

Example

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

Example

다음은 소인수분해 방법을 사용하여 주어진 숫자의 곱의 인수수를 구하는 프로그램입니다 -

으아아아

출력

으아아아

중첩 루프를 사용하세요

중첩 루프를 통해 모든 N개의 숫자의 곱을 찾을 수도 있습니다. 외부 루프에서는 1부터 product까지 모든 숫자를 반복해야 합니다. 이 숫자 범위 내에서 가능한 모든 제수를 찾을 수 있습니다. 중첩 루프에서는 각 숫자와 그 배수에 대한 제수 수를 계산합니다.

Example

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

Example

으아아아

출력

으아아아

결론

모듈로 연산자, 소인수 분해, 중첩 루프 등을 사용하여 N 숫자 곱의 제수 수를 찾는 다양한 방법을 논의했습니다. 더 큰 숫자의 경우 모듈로 연산자를 효율적으로 사용할 수 없습니다. 최적화된 결과를 얻기 위해 소인수분해와 중첩 루프를 사용할 수 있습니다.

위 내용은 N개의 숫자를 곱한 인수의 수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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