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("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。同样,在元素上从3到值的平方根迭代“ for”循环,并在每次迭代后增加2。

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