Java 最大素因子
我的java代码有点问题!问题是:13195的主要因素是5、7、13和29 数字600851475143中最大的素因子是什么 我的代码不知怎的不起作用!!发生了什么?谢谢你的帮助Java 最大素因子,java,Java,我的java代码有点问题!问题是:13195的主要因素是5、7、13和29 数字600851475143中最大的素因子是什么 我的代码不知怎的不起作用!!发生了什么?谢谢你的帮助 public class Example_1 { public static void main (String[] args){ { System.out.println(largestPrimeFactor(600851475143)); } } private s
public class Example_1 {
public static void main (String[] args){
{
System.out.println(largestPrimeFactor(600851475143));
}
}
private static long largestPrimeFactor(long number) {
long result = 0;
for(long x = 2;x<number;x++){
if(number % x == 0){
for( long y = 2; y < x ; y++ ){
if( x % y == 0){
break;
}
else{
result = x;
}
}
}
}
return result;
}
}
公共类示例\u 1{
公共静态void main(字符串[]args){
{
系统输出打印LN(最大原始因子(600851475143));
}
}
私有静态long largestPrimeFactor(长数){
长结果=0;
对于(长x=2;x
汇编问题:
- 方法
largestPrimeFactor
似乎在类之外
- 常量
600851475143
对于带有L
的int.Postfix太大:600851475143L
请注意,您编写的算法是次优的,这就是为什么在给定大输入时它可能会运行很长时间的原因。largestPrimeFactor
在类之外。这与实际代码中的情况不同,对吗?此外,main方法在开始时有两个{
。
public class Example_1 {
public static void main (String[] args){
System.out.println(largestPrimeFactor(600851475143L));
}
private static long largestPrimeFactor(long number) {
long result = 0;
if (number % 2 == 0){
result = 2;
while (number % 2 == 0)
number /= 2;
}
for(long x = 3; number > 1; x += 2)
if (number % x == 0){
result = x;
while (number % x == 0)
number /= x;
}
return result;
}
}
boolean xIsPrime = true;
for( long y = 2; y < x ; y++ ){
if( x % y == 0){
xIsPrime = false;
break;
}
}
if( xIsPrime ){
result = x;
}
public class Example_1 {
public static void main (String[] args){
System.out.println(largestPrimeFactor(600851475143L));
}
private static long largestPrimeFactor(long number) {
long result = 0;
if (number % 2 == 0){
result = 2;
while (number % 2 == 0)
number /= 2;
}
for(long x = 3; number > 1; x += 2)
if (number % x == 0){
result = x;
while (number % x == 0)
number /= x;
}
return result;
}
}