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的变量。将其返回。在主函数中,定义一个整数值,并通过使用特定参数调用函数来找出最大质因数。
广告