问题描述:
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
找出一个数字的最大因子。
这个还是有点复杂!
可以改进!
完全可以从2,3...除起来
每次记录下当前的除数就好了~
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
找出一个数字的最大因子。
public static boolean IsPrime(long number) {
int begin = 2;
int end = (int) Math.sqrt(number) + 1;
for (int i = begin; i < end; i++) {
if (number % i == 0)
return false;
}
return true;
}
public long FindLargestPrime1(long number) {
long largest_prime = 1;
int middle = (int) Math.sqrt(number);
System.out.println(middle);
for (int i = middle; i > 1; i--) {
if (IsPrime(i) && number % i == 0) {
if (i > largest_prime) {
largest_prime = i;
}
do {
number = number / i;
} while (number % i == 0);
}
}
if(IsPrime(number)&&number!=1){
largest_prime = number;
}
return largest_prime;
}
这个还是有点复杂!
可以改进!
完全可以从2,3...除起来
每次记录下当前的除数就好了~