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

数の最大の素因数を見つけるJavaプログラム


以下は、数の最大の素因数を見つけるためのJavaコードです-

import java.io.*;
import java.util.*;
public class Demo{
   static long maxPrimeFactors( long val){
      long max_prime = -1;
      while (val % 2 == 0) {
         max_prime = 2;
         val >>= 1;
      }
      for (int i = 3; i <= Math.sqrt(val); i += 2){
         while (val % i == 0){
            max_prime = i;
            val = val / i;
         }
      }
      if (val > 2)
      max_prime = val;
      return max_prime;
   }
   public static void main(String[] args){
      int val = 148592;
      System.out.println("The largest prime factor of 148592 is ");
      System.out.println(maxPrimeFactors(val));
      val = 890654;
      System.out.println("The largest prime factor of 890654 is ");
      System.out.println(maxPrimeFactors(val));
   }
}

出力

The largest prime factor of 148592 is
251
The largest prime factor of 890654 is
4591

Demoという名前のクラスには、値を反復処理する静的関数が含まれ、値のモジュラス2が0かどうかをチェックする「while」条件が定義されています。0の場合、変数(max_prime)に値2が割り当てられます。それ以外の場合は、1ずつ右にビットシフトされます。ここでも、「for」ループは、値の3から平方根までの要素に対して繰り返され、反復ごとに2ずつ増加します。

ここで、「while」ループは、値のモジュラスイテレータが0であるかどうかをチェックします。そうである場合、変数(max_prime)には、現在繰り返されている値が割り当てられます。値は反復値で除算されます。この値が2より大きい場合、この値(max_prime)はmax_primeという名前の変数に割り当てられます。これが返されます。メイン関数では、整数値が定義され、特定の引数を使用して関数を呼び出すことにより、最大の素因数が検出されます。


  1. リスト内で最大数を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 与えられたリスト入力では、与えられたリストの中で最大の数を見つける必要があります。 ここでは、2つのアプローチについて説明します 並べ替え手法の使用 組み込みのmax()関数を使用する アプローチ1-組み込みのsort()関数を使用する 例 list1 = [18, 65, 78, 89, 90] list1.sort() # main print("Largest element is:", list1[-1]) 出力 Largest element is:

  2. 数の最大の素因数を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 正の整数nが与えられます。数の最大の素因数を見つける必要があります。 アプローチ 指定された数値を数値の約数で割って因数分解します。 最大素因数を更新し続けます。 例 import math def maxPrimeFactor(n):    # number must be even    while n % 2 == 0:       max_Prime = 2       n /= 1