素因数分解をするJavaコード
素因数分解とは、与えられた数を素数の積に分解することです。素数とは1と自分自身以外の約数を持たない数のことです。
素因数分解は、数学や暗号学などの分野で広く使用されます。与えられた数を素因数分解することによって、その数の性質や構成要素を理解することができます。
素因数分解は次の手順で行われます:
素因数分解したい数を与えます。
最小の素数で割れるだけ割ります。割り切れた場合は、その素数を素因数として取り出します。
割り切れなくなるまで2の手順を繰り返します。このとき、2以外の奇数の素数を用いて割っていきます。
最後に残った数が素数の場合、それも素因数として取り出します。
例えば、数値48の素因数分解を考えると、48を2で割ると24になり、さらに24を2で割ると12になります。そして12を2で割ると6になり、6を2で割ると3になります。最後に残った数3は素数なので、素因数として取り出します。したがって、数値48の素因数分解結果は2 × 2 × 2 × 2 × 3 = 2^4 × 3となります。
素因数分解は、数の因数や約数を求めるだけでなく、数の性質や素数判定、最大公約数や最小公倍数の計算、素数を用いた暗号の解読など、さまざまな数学的な応用に役立ちます。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class PrimeFactorization {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("素因数分解する数を入力してください");
int number = scanner.nextInt();
scanner.close();
List<Integer> primeFactors = findPrimeFactors(number);
System.out.println("素因数分解結果:");
for (int factor : primeFactors) {
System.out.print(factor + " ");
}
}
public static List<Integer> findPrimeFactors(int number) {
List<Integer> primeFactors = new ArrayList<>();
// 2が素因数として何度でも割り切れるだけ割ります
while (number % 2 == 0) {
primeFactors.add(2);
number /= 2;
}
// 3以上の奇数で割り切れる素因数を探します
for (int i = 3; i <= Math.sqrt(number); i += 2) {
while (number % i == 0) {
primeFactors.add(i);
number /= i;
}
}
// 最後に残った数が素数の場合、その数も素因数として追加します
if (number > 2) {
primeFactors.add(number);
}
return primeFactors;
}
}
投稿者プロフィール
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
- 新人エンジニア研修講師2024年12月26日研修後のフォローアップメールをより効率的かつ効果的に活用するための「テンプレート作成のポイント」
- 新人エンジニア研修講師2024年12月26日研修講師がフォローアップメールを活用するには?
- 全ての社員2024年12月26日TOEIC 900点レベルの英熟語200選
- 全ての社員2024年12月26日TOEICで頻出する複合名詞(Compound Nouns)