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+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.