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

แนวทางที่ใช้ด้านล่างมีดังต่อไปนี้ในการแก้ปัญหา -

  • รับอินพุต num .

  • วนจาก i =1 ถึง i*i<=num

  • ตรวจสอบว่า num%i==0 แล้ว ตรวจสอบ

    • หาก num%i ==i ให้ตั้งค่าของผลิตภัณฑ์ =(product*i)%1e7

    • Else กำหนดผลิตภัณฑ์เป็น (ผลิตภัณฑ์ * i) % MAX และ กำหนดผลิตภัณฑ์เป็น (ผลิตภัณฑ์ * 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