Napisałem program, który rozkłada liczbę na czynniki pierwsze.
public class ProjectEuler3 {
public static void main (String[] args) {
int liczba = 2000;
double pierwiastek = Math.sqrt(liczba);
int i = 2;
while (i < pierwiastek) {
if (liczba % i == 0) {
System.out.println(liczba + " / " + i);
liczba = liczba / i;
continue;
}
if (liczba % i != 0)
i++;
}
}
}
W przykładzie na czynniki pierwsze rozkładana jest liczba 2000.
Wynik programu:
2000 / 2
1000 / 2
500 / 2
250 / 2
125 / 5
25 / 5
5 / 5
Czy znajdzie się ktoś kto doradzi mi jak przerobić programik tak aby można było rozłożyć liczbę 600851475143? Nie chcę gotowca tylko jakieś podpowiedzi abym mógł to sam zrobić. Próbowałem za pomocą typu long oraz BigInteger i coś mi nie wychodzi.