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

約数の個数が偶数か奇数かを判定するJavaプログラム

ある整数の約数がいくつあるのかを実際に数えなくても、その個数が偶数か奇数かを効率よく判定する方法があります。本記事では、Javaを使って約数の個数の偶奇をチェックするプログラムを紹介します。

コード例

import java.io.*;
import java.math.*;
public class Demo{
    static void divisor_count(int n_val){
        int root_val = (int)(Math.sqrt(n_val));
        if (root_val * root_val == n_val){
            System.out.println("約数の個数は奇数です");
        }else{
            System.out.println("約数の個数は偶数です");
        }
    }
    public static void main(String args[]) throws IOException{
        divisor_count(25);
    }
}

出力結果

約数の個数は奇数です

プログラムの解説

このプログラムでは、Demo というクラスの中に divisor_count というメソッドを定義しています。このメソッドは、引数として渡された整数の約数の個数が偶数か奇数かを判定し、その結果に応じたメッセージをコンソールに出力します。

main メソッド内では、divisor_count(25) のように具体的な値を渡してメソッドを呼び出しています。25 は平方数(5 × 5 = 25)であるため、「約数の個数は奇数です」というメッセージが表示されます。

なぜ平方根だけで判定できるのか?

一般に、整数 n の約数はペアで現れます。たとえば n = 12 の場合、約数のペアは (1, 12)、(2, 6)、(3, 4) のように組み合わせになっており、この場合約数は 1, 2, 3, 4, 6, 12 の 6 個(偶数)です。

しかし、n が完全平方数(平方数)の場合だけは例外になります。n = 25 のように √n が整数になるとき、5 × 5 = 25 という同じ数同士のペアが存在するため、約数は 1, 5, 25 の 3 個(奇数)となります。

つまり、n が完全平方数なら約数の個数は奇数、そうでなければ偶数という法則が成り立ちます。このプログラムはこの性質を利用しており、Math.sqrt() で平方根を求め、その2乗が元の数と一致するかどうかを確認するだけで判定できます。約数を1つずつ数えるアプローチと比べ、計算量は O(1) と非常に効率的です。

  1. Javaでカウンタープログラムを実装する方法をわかりやすく解説

    この記事では、JavaのSwingを使ってシンプルなカウンター(数を数える)アプリケーションを実装する方法を解説します。このプログラムでは、JLabelでカウント用のラベルを表示し、JTextFieldで現在のカウント値を保持し、JButtonで「追加(Add)」「削除(Remove)」「リセット(Reset)」の3つのボタンを作成します。 「Add」ボタンをクリックするとJTextField内のカウントが1ずつ増加し、「Remove」ボタンをクリックすると1ずつ減少します。さらに「Reset」ボタンをクリックすると、カウントは0にリセットされます。 実装例 import java.awt.*

  2. 【Python】約数の個数が偶数か奇数かを判定するプログラムの書き方

    この記事では、ある整数の約数の個数が偶数か奇数かを判定するPythonプログラムについて、その考え方と実装方法をわかりやすく解説します。 問題文 ある数「n」が与えられたとき、その約数の総数が偶数であるか奇数であるかを判定してください。 例えば、n = 10 の場合、約数は 1, 2, 5, 10 の4つなので「偶数」。一方、n = 100 の場合は 1, 2, 4, 5, 10, 20, 25, 50, 100 の9つとなり「奇数」となります。 アプローチ:約数を実際に数える 最も基本的な方法は、すべての約数を見つけ、その個数が偶数か奇数かをチェックすることです。 ここで重要なのは、約数