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的类包含一个静态函数,该函数获取一个值,并定义了一个“while”条件,该条件检查该值模2是否为0。如果为0,则变量(max_prime)被赋值为2。否则,它向右移位1位。再次,一个“for”循环迭代从3到该值平方根的元素,并且每次迭代后递增2。

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

更新于: 2020年7月4日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告