C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

nの素数pの累乗を見つけよう! C++で


この問題では、数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としましょう、

n! =6! =(2 * 3 * 4 * 5 * 6)

n! =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

  1. 数値が2の累乗であるかどうかを調べるC++プログラム?

    与えられた数が2の累乗であるかどうかを確認します。最初に、どの数が2の累乗であるかを確認します。このコードは、数値が奇数かどうかをチェックし、0または奇数になるまで同時に除算します。 0になると2の累乗になり、そうでない場合はそうではありません。 より良い選択は、番号のログを取ることです。整数の場合、nは2の累乗です。それ以外の場合はそうではありません。 2の累乗である数: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 ... 22 = 4 25 = 32 210 = 1024 Input: 8 Output: Number is pow

  2. 数値の累乗を計算するC++プログラム

    数値の累乗はx^yとして計算できます。ここで、xは数値、yはその累乗です。 たとえば。 Let’s say, x = 2 and y = 10    x^y =1024    Here, x^y is 2^10 数値の累乗は、再帰的および非再帰的プログラムを使用して計算できます。これらのそれぞれは次のように与えられます。 非再帰的プログラムを使用した数の力 非再帰的プログラムを使用して数の累乗を見つけるプログラムは次のように与えられます- 例 #include<iostream> using namespace std;