Java 程序查找数字的最大素因数

javaobject oriented programmingprogramming更新于 2025/7/8 17:16:17

以下是 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("148592 的最大素因数是 ");
      System.out.println(maxPrimeFactors(val));
      val = 890654;
      System.out.println("890654 的最大质因数是 ");
      System.out.println(maxPrimeFactors(val));
   }
}

输出

148592 的最大质因数是
251
890654 的最大质因数是
4591

名为 Demo 的类包含一个静态函数,该函数返回一个值,并且定义了一个 ‘while’ 条件,用于检查模数 2 的值是否为 0。如果为 0,则将值 (max_prime) 赋值为 2。否则,将其右移 1 位。同样,‘for’循环迭代从 3 到值的平方根的元素,每次迭代后递增 2。

现在,‘while’ 循环检查值模数迭代器是否为 0。如果是,则将当前正在迭代的值分配给变量 (max_prime)。该值除以迭代值。如果此值大于 2,则将此值 (max_prime) 分配给名为 max_prime 的变量。返回此值。在主函数中,定义一个整数值,并通过使用特定参数调用该函数来找出最大的素数因子。


相关文章


有用资源