Posez votre question Signaler

[java] nombre premier [Résolu]

babyglo 15Messages postés 7 juin 2005Date d'inscription - Dernière réponse le 20 déc. 2010 à 10:43
Bonjour,

Est-ce que l'un d'entre vous aurait un programme en Java qui affiche un message disant si l'entier n (lu sur la ligne de commande) est un nombre premier ou non? SVP

Merci d'avance.
Lire la suite 

[java] nombre premier »

8 réponses
Réponse
+5
moins plus
	public boolean isPremier(int n) {
		boolean isPremier = true;
		if (n < 0) {
			isPremier = false;
		} else if (n != 0 && n != 1) {
			for (int i = 2; i <= n/2; i++) {
				if (n != i && n % i == 0) {
					isPremier = false;
					break;
				}
			}
		}
		return isPremier;
	}


;-)
HackTrack
babyglo - 14 août 2005 à 18:45
Bonjour à tous,

HackTrack, ton algo marche très bien! Y'a juste un petit souci : il donne true pour le nombre 1 alors que ce n'est pas un nombre premier. Mais ça devrait aller je devrais bien arriver à corriger ça....

En tout cas, un énorme merci !!!

A bientôt.
Pseudonyme - 20 déc. 2010 à 10:43
boolean isPremier = false;
;-)
Ajouter un commentaire
Réponse
+4
moins plus
public boolean isPremier(int n){
if(n<=1) return false;
for(int i = 2;i*i<=n;i++) if (n%i ==0) return false;
return true;
}

si n n'est pas premier, alros il existe un nombre i<=sqrt(n) et un nombre j <=n tels que i*j==n
dans mon algo, on s'arrete bien avant n/2, plus le nombre est grand, plus le gain de temps est important(par exemple, pour l'ordre de 10000: le mien=> on s'arete vers 100, pour celui de hacktrack tu t'arreterais à 5000, soit 50 fois plus de temps..)
Ajouter un commentaire
Réponse
+1
moins plus
je n'ai pas le code source mais si tu souhaites réaliser le code par toi meme je peux te donner un "petit" coup de pouce.


i entier=1
pas_premier booleen (initialisé a faux)

lire (nombre)
Tu fais une boucle while dont la condition est (i>partie entière de (racine(nombre))ou(pas_premier=true){
si (reste de la division par i de nombre est nul) alors pa_premier =true
incrementation de i
}
si (pa_premier = true) alors écrire (nombre est pa premier) sinon écrire(nombre est premier)
Ajouter un commentaire
Réponse
+0
moins plus
salut,

tu trouvera ici les algo
http://www.haypocalc.com/maths/algo_premier.php
ya plus qu'a retranscrire en java.
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour vos réponses.

J'ai surtout essayé avec le site haypocalc car les histoires de racine j'avoue que c'est pas mon truc :-).
Malheureusement ça fait deux soirs que j'essaye de réécrire en java mais y'a un truc que j'arrive pas à capter, je commence à désespérer... En attendant, si quelqu'un a une autre suggestion je suis preneuse!
Ajouter un commentaire
Réponse
+0
moins plus
Salut babyglo

tu trouveras la réponse dans le paradis des nombres premiers en java

http://jc.michel.free.fr/premiers.php


bxflash

Tu y arrives en java?

Je suis pas fortiche, plus j'étudie et moins j'y comprends...
Ajouter un commentaire
Ce document intitulé « [java] nombre premier » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Windows 8 - À quoi s'attendre ?