Factorisation Programme en Java

Je suis en train de travailler sur une factorisation programme mis en œuvre en Java.
L'objectif est de trouver le plus grand facteur premier de 600851475143 (Projet Euler problème 3).
Je pense que j'ai le plus de faire, mais je suis de faire un peu d'erreurs.
Aussi ma logique semble être hors, en particulier la méthode que j'ai mis en place pour vérifier si un nombre est premier.

public class PrimeFactor {

    public static void main(String[] args) {
        int count = 0;
        for (int i = 0; i < Math.sqrt(600851475143L); i++) {
            if (Prime(i) && i % Math.sqrt(600851475143L) == 0) {
                count = i;
                System.out.println(count);
            }
        }
    }

    public static boolean Prime(int n) {
        boolean isPrime = false;
        //A number is prime iff it is divisible by 1 and itself only
        if (n % n == 0 && n % 1 == 0) {
            isPrime = true;
        }
        return isPrime;
    }
}

Modifier

public class PrimeFactor {

    public static void main(String[] args) {
        for (int i = 2; i <= 600851475143L; i++) {
            if (isPrime(i) == true) {
                System.out.println(i);
            }
        }
    }

    public static boolean isPrime(int number) {
        if (number == 1) return false;
        if (number == 2) return true;
        if (number % 2 == 0) return false;
        for (int i = 3; i <= number; i++) {
            if (number % i == 0) return false;
        }
        return true;
    }
}
Quelles erreurs avez-vous l'obtenir? et dans lequel les lignes ne vous obtenez des erreurs?
Votre Premier méthode renvoie toujours vrai, car n%n == 0 && n%1 == 0 pour tous n. C'est, tous les nombres sont divisibles que par eux-mêmes et 1. Vous êtes absent le "seulement" une partie de la définition.
Malheureusement, vous n'êtes même pas proche. Votre primalité algorithme ne fonctionne pas, parce que tous les nombres sont divisibles que par eux-mêmes et zéro - c'est juste que les nombres premiers ne sont pas divisibles par quoi que ce soit d'autre, et que vous avez à mettre en œuvre une case pour cela. Le Tamis de Erasthones besoins 600 GO de mémoire RAM pour fonctionner jusqu'à une valeur dans la 600B gamme, de manière récursive la factorisation en nombres premiers est la seule pratique de la stratégie, et avec un grand espace de problème, il va prendre des heures ou des jours. C'est la base de tous de cryptage modernes: la factorisation en nombres premiers au-dessus de la taille de la RAM est très lent.
Oui, c'était l'une des erreurs logiques, comment pourrais-je résoudre ce problème?
Je pense que tu veux dire " divisible par eux-mêmes et un ".

OriginalL'auteur kachilous | 2010-11-25