주어진 숫자 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