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

【Java入門】数値の約数をすべて表示するプログラムの書き方

この記事では、Javaを使って数値の約数(因数)を表示する方法について詳しく解説します。

約数とは?

約数とは、ある数を余りなく割り切ることができる数のことです。言い換えると、別の数を作るために掛け合わせる数とも表現できます。

例えば、3と5を掛けると15になります。このとき、3と5は「15の約数」であると言えます。また、12の場合を見てみると、1・2・3・4・6・12はいずれも12を余りなく割り切れるため、これらはすべて12の約数です。

最大の約数と最小の約数

どのような数でも、最大の約数はその数自身であり、最小の約数は1になります。

  • 1はすべての整数の約数です。
  • 例えば、12の最大の約数と最小の約数は、それぞれ12と1です。

実行例

ここでは、入力値として45を与えた場合の動作を確認してみましょう。

入力:

Input : 45

出力:

45の約数は: 1 3 5 9 15 45

アルゴリズム

Step 1 - 開始する
Step 2 - 整数型変数 my_input と i を宣言する
Step 3 - ユーザーから値を受け取る、または値を直接定義する
Step 4 - forループで1からmy_inputまで繰り返し処理を行う。
         各ループで「my_input % i」の余りを計算し、
         余りが0であればiは約数なので、その値を出力対象として扱う
Step 5 - 結果を表示する
Step 6 - 終了する

例1:ユーザーからの入力を受け付ける場合

この例では、Scannerクラスを使ってユーザーからの入力を受け付けます。キーボードから任意の数値を入力すると、その約数が画面に表示されます。

import java.util.Scanner;
public class Factors {
   public static void main(String[] args) {
      int my_input, i;
      System.out.println("Required packages have been imported");
      Scanner my_scanner = new Scanner(System.in);
      System.out.println("A reader object has been defined ");
      System.out.print("Enter the number : ");
      my_input = my_scanner.nextInt();
      System.out.print("The factors of " + my_input + " are: ");
      for (i = 1; i <= my_input; ++i) {
         if (my_input % i == 0) {
            System.out.print(i + " ");
         }
      }
   }
}

出力:

Required packages have been imported
A reader object has been defined
Enter the number : 45
The factors of 45 are: 1 3 5 9 15 45

例2:値を事前に定義しておく場合

この例では、整数値があらかじめコード内で定義されており、その値に対する約数をコンソールに出力します。

import java.util.Scanner;
public class Factors {
    public static void main(String[] args) {
        int my_input, i;
        my_input = 45;
        System.out.println("The number is defined as " +my_input);
        System.out.print("The factors of " + my_input + " are: ");
        for (i = 1; i <= my_input; ++i) {
            if (my_input % i == 0) {
                System.out.print(i + " ");
            }
        }
   }
}

出力:

The number is defined as 45
The factors of 45 are: 1 3 5 9 15 45

まとめ

約数を求める基本的な考え方は、「1からその数自身まで順番に割ってみて、余りが0になる数を探す」というシンプルなものです。%(剰余演算子)とforループを組み合わせるだけで、誰でも簡単に約数を求めるプログラムを実装できます。まずは上記のサンプルコードを実際に動かして、仕組みを体感してみてください。

  1. 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

  2. 数の約数の最小合計を求めるJavaプログラム

    ある整数の約数の最小合計を求めるには、素因数分解を利用するのが効果的です。合成数を素因数に分解すると、その和は必ず元の数以下になるため、素因数ごとに足し合わせた値が最小の合計となります。以下に、この考え方を実装したJavaコードを示します。サンプルコードpublic class Demo {     static int minimum_sum(int num){         int my_sum = 0;      &n