इस समस्या में, हमें एक संख्या n और एक अभाज्य संख्या p दी गई है। हमारा काम है n में अभाज्य संख्या p की घात ज्ञात करना!
समस्या को समझने के लिए एक उदाहरण लेते हैं,
Input : n = 6, p = 2 Output : 4
समाधान दृष्टिकोण
समस्या का एक सरल समाधान केवल n! का मान ज्ञात करना है। और इसका गुणनखंड करें, और गुणनखंड में अभाज्य संख्या p की घात ज्ञात करें।
यहाँ, संख्या को 5 में 2 के घात गुणनखंड के रूप में दर्शाया जा सकता है! =30 है 3.
n फैक्टोरियल का मान है
$$n!\:=\:n^*(n-1)^*(n-2)^*(n-3)\dotso{^*}2^*1$$
$$n!\:=\:3^*2^*1\:=\:6$$
मान लीजिए n =6 और p =2,
एन! =6! =(2*3*4*5*6)
एन! =720
720 का गुणनखंड 2*2*2*2*3*3*5
. है6 के गुणनखंड में 2 की शक्ति! 4 है।
इसलिए आउटपुट 4 है।
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम
#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;
} आउटपुट
The power of prime number 2 in 6! is 4