Nombre premier de jugement?
La première approche:
Idées:En partant de la définition du nombre premier,Sauf que1Au - delà de sa propre multiplication,Les nombres qui ne peuvent pas être multipliés par d'autres entiers sont appelés premiers(Nombre premier),Ajouter un numéro d'entrée estn,Utiliser la boucle pour faire tourner la variableiDe2Ça commence àn-1Fin,Sin%i ==0 ,AlorsnExiste sauf1Sauf un entier qui est séparé de lui et le résultat existe,C'est le momentnPas premier,Sin%i !=0,Alors, ça veut direnN'a pas été[2,n-1]Division d'un nombre entier entre,Donc, à partnEn soi.,Donc...nC'est un nombre premier.
public static void main (String[ ] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.next.Int();
int i = 2;
for(i=2;i<n;i++){
if(n%i==0){
System.out.println(n+"Pas premier.");
break;
}
}
if(i==n){
System.out.println(n+"C'est un nombre premier");
}
}
Deuxième approche:Cette méthode est une amélioration par rapport à la première,Un nombre(n)Si elle est décomposée par multiplication factorielle,Un de ces facteurs doit être inférieur ou égal àn/2,Cette approche consiste donc à réduire de moitié les étapes de la première approche.
public static void main (String[ ] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.next.Int();
int i = 2;
for(i=2;i<=n/2;i++){
if(n%i==0){
System.out.println(n+"Pas premier.");
break;
}
}
if(i>n/2){
System.out.println(n+"C'est un nombre premier");
}
}
Troisième méthode:Kaigen,Un nombre(n)Si elle est décomposée par multiplication factorielle,Un de ces facteurs doit être inférieur ou égal à√n
public static void main (String[ ] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.next.Int();
int i = 2;
for(i=2;i<=Math.sqrt(n);i++){
if(n%i==0){
System.out.println(n+"Pas premier.");
break;
}
}
if(i>Math.sqrt(n)){
System.out.println(n+"C'est un nombre premier");
}
}
Voici les trois façons de juger les nombres premiers ....