Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

กำลังของจำนวนเฉพาะ r ใน n! ใน C++


ในปัญหานี้ เราได้จำนวนเต็มสองตัว n และ r งานของเราคือการหากำลังของจำนวนเฉพาะที่กำหนด r ในแฟกทอเรียลของจำนวน n

มาดูตัวอย่างทำความเข้าใจปัญหากัน

ป้อนข้อมูล − n =6 r =2

ผลผลิต − 4

คำอธิบาย

Factorial n, 6! = 6*5*4*3*2*1 = 720
720 = 24 * 32 * 5, power of 2 is 4

ในการแก้ปัญหานี้ วิธีแก้ไขง่ายๆ คือ การหาแฟคทอเรียลโดยตรงแล้วจึงหากำลังของจำนวนเฉพาะ แต่นี่ไม่ใช่ทางออกที่ดีที่สุด

อีกวิธีที่มีประสิทธิภาพคือการใช้สูตร

พลังของ 'r' ใน n! =floor(n/r) + floor(n/r2) + floor(n/r3) + ...

ตัวอย่าง

โปรแกรมแสดงการใช้งานโซลูชันของเรา

#include <iostream>
using namespace std;
int primePower(int n, int r) {
   int count = 0;
   for (int i = r; (n / i) >= 1; i = i * r)
      count = count+n/i;
   return count;
}
int main() {
   int n = 6, r = 2;
   cout<<"Power of prime number "<<r<<"in factorial "<<n<<" is : "<<primePower(n, r);
   return 0;
}

ผลลัพธ์

Power of prime number 2in factorial 6 is : 4