Trong bài toán này, chúng ta được cho một số n và một số nguyên tố p. Nhiệm vụ của chúng ta là tìm lũy thừa của số nguyên tố p trong n!
Hãy lấy một ví dụ để hiểu vấn đề,
Input : n = 6, p = 2 Output : 4
Phương pháp tiếp cận giải pháp
Một giải pháp đơn giản cho vấn đề này là tìm các giá trị của n !. Và phân tích thừa số nó, và tìm lũy thừa của số nguyên tố p trong phân tích nhân tử.
Ở đây, con số có thể được biểu diễn dưới dạng thừa số lũy thừa của 2 trong 5! =30 là 3.
Giá trị của n giai thừa là
$$ n! \:=\:n ^ * (n-1) ^ * (n-2) ^ * (n-3) \ dotso {^ *} 2 ^ * 1 $$
$$ n! \:=\:3 ^ * 2 ^ * 1 \:=\:6 $$
Lấy n =6 và p =2,
N! =6! =(2 * 3 * 4 * 5 * 6)
N! =720
Hệ số của 720 là 2 * 2 * 2 * 2 * 3 * 3 * 5
Lũy thừa của 2 trong thừa số của 6! là 4.
Do đó đầu ra là 4.
Ví dụ
Chương trình minh họa hoạt động của giải pháp của chúng tôi
#include <iostream>
using namespace std;
int powerOfPrimeNfactorial(int N, int P){
int primePower = 0;
int factVal = P;
while (factVal <= N) {
primePower += N / factVal;
factVal = factVal * P;
}
return primePower;
}
int main(){
int N = 6;
int P = 2;
cout<<"The power of prime number "<<P<<" in "<<N<<"! is "<<powerOfPrimeNfactorial(N, P) << endl;
return 0;
} Đầu ra
The power of prime number 2 in 6! is 4