Javaで数の一意な素因数の積を求めるプログラム
ある整数の一意な素因数(重複しない素因数)の積を求めるためのJavaコードは以下の通りです。
例
public class Demo {
public static long prime_factors(int num){
long my_prod = 1;
for (int i = 2; i <= num; i++){
if (num % i == 0){
boolean is_prime = true;
for (int j = 2; j <= i / 2; j++){
if (i % j == 0){
is_prime = false;
break;
}
}
if (is_prime){
my_prod = my_prod * i;
}
}
}
return my_prod;
}
public static void main(String[] args){
int num = 68;
System.out.println("The product of unique prime factors is ");
System.out.print(prime_factors(num));
}
}
出力
The product of unique prime factors is 34
コードの解説
「Demo」という名前のクラスには、静的メソッド「prime_factors」が定義されています。このメソッドは、引数として渡された数値の素因数を求め、重複を除いた一意な素因数のみを抽出し、それらの積を変数に格納して返します。
処理の流れは次の通りです。まず外側のforループで、2から入力された数値までの各整数iについて、numがiで割り切れるかどうかを判定します。割り切れる場合、iはnumの約数であることがわかります。
次に、内側のforループを使用して、その約数iが素数かどうかをチェックします。2からi/2までの整数のうち、iを割り切れるものが1つでも存在すれば、iは素数ではないと判断されます。
iが素数であると確認できた場合のみ、その値を結果格納用の変数my_prodに掛け合わせます。この仕組みにより、同じ素因数が複数回掛け合わされることを防ぎ、一意な素因数だけの積を正しく求められます。
mainメソッドでは、対象となる数値(この例では68)が定義され、その値を引数としてprime_factorsメソッドが呼び出されます。68を素因数分解すると 68 = 2 × 2 × 17 となるため、一意な素因数は2と17であり、その積は34になります。最後に、計算結果と関連するメッセージがコンソールに表示されます。
-
Pythonで数値の一意な素因数の積を求める方法
この記事では、以下の問題文に対する解決策について学びます。問題文数値 n が与えられたとき、その数値が持つすべての一意な素因数の積を求めて返します。例入力: num = 11 出力: 積は 11説明ここでは、入力された数値は 11 であり、素因数は 11 のみです。したがって、その積は 11 となります。アプローチ1:総当たり法i = 2 から n+1 までの for ループを使用し、i が n の因数であるかどうかを確認します。因数であれば、さらに i 自体が素数かどうかを判定し、素数であれば product 変数に積を格納します。この処理を i が n になるまで繰り返します。コード例de
-
Pythonプログラム:数の一意な素因数の積を求める方法
はじめに 本記事では、次の問題に対する解き方を学びます。 問題文: 整数 n が与えられたとき、その数が持つ一意な(重複しない)素因数をすべて求め、それらの積を返します。 例: 入力:num = 11 出力:積は 11 説明: 入力された数は 11 で、素因数は 11 のみです。 したがって、その積も 11 となります。 アプローチ1:総当たり法(ブルートフォース) i = 2 から n+1 までの for ループを使い、i が n の約数であるかどうかを確認します。約数であれば、さらに i 自身が素数かどうかを判定し、素数なら積に掛け合わせます。この処理を i が n に達するまで繰り返しま