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

C++에서 숫자 인수의 곱


주어진 숫자 n은 모든 요인을 찾고 해당 요인의 곱을 찾은 다음 결과, 즉 숫자의 요인의 곱을 반환해야 합니다. 수의 인수는 1을 포함하여 수를 완전히 나눌 수 있는 수입니다. 6의 인수와 마찬가지로 -1, 2, 3, 6입니다.

이제 작업에 따라 숫자의 모든 요소를 ​​제품에 찾아야 합니다.

입력 - n =18

출력 - 5832

설명 - 1 * 2 * 3 * 6 * 9 * 18 =5832

입력 - n =9

출력 - 27

설명 - 1 * 3 * 9 =27

아래에 사용된 접근 방식은 문제를 해결하기 위해 다음과 같습니다 -

  • 입력 번호를 가져옵니다.

  • i =1에서 i*i<=num

    까지 루프
  • num%i==0인지 확인한 다음 확인

    • num%i ==i이면 product =(product*i)%1e7

      의 값을 설정합니다.
    • 그렇지 않으면 product를 (product * i) % MAX로 설정하고 product를 (product * num / i) % MAX로 설정하십시오.

  • 제품을 반품하세요.

알고리즘

Start
In Function long long productfactor(int num)
   Step 1→ Declare and Initialize product as 1
   Step 2→ For i = 1 and i * i <= num and i++
      If num % i == 0 then,
      If num / i == i then,
         Set product as (product * i) % MAX
      Else
         Set product as (product * i) % MAX
         Set product as (product * num / i) % MAX
   Step 3→ Return product
In Function int main()
   Step 1→ Declare and initialize n as 9
   Step 2→ Print the result productfactor(n)
Stop

#include <stdio.h>
#define MAX 1000000000
// find the product of the factors
long long productfactor(int num){
   long long product = 1;
   for (int i = 1; i * i <= num; i++){
      if (num % i == 0){
         //equal factors should be multiplied only once
         if (num / i == i)
         product = (product * i) % MAX;
         // Else multiply both
         else {
            product = (product * i) % MAX;
            product = (product * num / i) % MAX;
         }
      }
   }
   return product;
}
int main(){
   int n = 9;
   printf("%lld\n", productfactor(n));
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

27