以下是找到数字最大质因数的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的变量。这被返回。在主函数中,定义了一个整数值,并通过使用特定参数调用该函数来找出最大的质因数。