J'écris un programme qui prend en entrée un nombre entier, et affiche un message indiquant si l'entier entré est premier ou non. L'algorithme J'utilise est la suivante ... redemanderas n> 0, redemanderas isPrime < - vrai, pour i = 2 à sqrt (n) faire, si n% i = 0 puis isPrime < - false fin si et fin pour Puis Imprimer si le nombre est Premier ou non. Voici mon code jusqu'à présent, le code ne fonctionne pas et je ne suis pas en mesure de trouver le problème.Détermination des nombres premiers Java
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int n;
System.out.println("Input a positive integer");
n = kb.nextInt();
while (n>0){
boolean isPrime = true;
for (int i =2; i <= n/2;i++){
if(n % i == 0){
isPrime = false;
break;
}
}
if (isPrime = true){
System.out.println("The integer, " + n + ", is a prime");
break;
}
else{
System.out.println("The integer, " + n + ", is not a prime");
break;
}
}
}
}
Je serais reconnaissant si quelqu'un pouvait aider, merci!
Ça ne fonctionne pas? En quoi cela ne fonctionne-t-il pas? S'il vous plaît! Donnez-nous une idée! –
Est-ce que vous réalisez que 'isPrime = true' est une assignation et non une comparaison? –
Vous pouvez faire cela plus rapidement en omettant tous les nombres pairs sauf 2. http://www.mkyong.com/java/how-to-determine-a-prime-number-in-java/ – spuder