[Photo + vidéo] Java basé sur les exercices classiques (a) la sortie de nombre premier entre 2 à 100, et le nombre de nombres premiers

Code ne peut pas résoudre le problème peut être écrit une fois et
nous devons trouver le manque de mode de débogage, puis faire des changements après notre idée d'écrire du
code qui peut être obtenu qu'après plusieurs tests pour résoudre le problème!
Grâce à l'étude, des exercices pratiques basés sur le classique [Java], laissez - nous travailler ensemble pour cultiver cette pensée pour résoudre le problème.

La première question: Combien de nombres premiers entre 2-100 détermination et sorties tous les nombres premiers.

1. Tutoriel vidéo:

La pensée entre 2-100 les premières exigences
exigent un nombre premier entre 2-100 Code Explication

2. L'idée de l'analyse:

Q1: Qu'est - ce qu'un nombre premier?
A1: premier (nombre premier) se réfère au nombre naturel supérieur à 1, en plus de 1 et le nombre lui - même à l'extérieur , ne peut pas être divisible par le nombre d'autres naturelles nombres. (C'est - à - dire un numéro 1 et lui - même que deux facteurs )

Q2: Comment savoir si un nombre est en plus de 1 et le nombre lui - même un facteur?
A2: Prenons un exemple pour analyser 4:

  • Détermine si un nombre divisible par quatre, rien que seuls les quatre cas suivants:
    Cas 1: 4/1
    Cas n ° 2: 4/2
    Cas n ° 3: 4/3
    Cas n ° 4: 4/4
  • Nous savons donc: Chaque numéro 1 et lui - même a deux facteurs (chaque numéro peut être divisible par 1 et lui - même)
    Donc , nous avons un nombre divisible en jugeant si [4] ne doivent considérer les points suivants dans les deux cas:
    cas 2: 4/2
    Scénario 3: 4/3
  • Ainsi, nous pouvons résumer la règle:
    déterminer si un certain nombre d'autres facteurs , à faire le nombre de enlevé [2- (déterminé nombre requis -1)] Le nombre dans cette plage .
    La détermination n'a besoin que de regarder à 4: 4 / 2,4 / 3

  • Pour voir s'il est divisible arrive les deux cas: s'il y a une description de ce numéro est pas un nombre premier , le prochain sera un juge s'il n'y a pas de description pour ce numéro est un nombre premier , pour être la sortie de ce nombre, et permettent d' enregistrer [nombre variable de nombres premiers] plus 1 est déterminée une fois de plus.

    3. Code + + réponse détaillée:

package Exercise;

public class SuShu1 {

    public static void main(String[] args) {
        int i = 0;
        int j = 0;
        int count = 0;//储存2-100之间的素数个数
        boolean flag = true;
//用处:在当一个数有【除1和它本身之外的因数】时,使其值变为false,以便进入下一次循环
        for (i = 2; i <= 100; i++) {//从2-100开始进行循环
            flag = true;
//每完成一次for循环需要把flag值重新置为true,否则将会影响下次的循环
            for (j = 2; j < i; j++) {
//用此for循环的数字来判断i是否有【除1和它本身之外的因数】
                if (i % j == 0) {//如果i%j==0,说明i有【除1和它本身之外的因数】
                    flag = false;//这时让flag = false;
                    break;//并退出这个双重for循环
                }
            }
            if (flag == true) {
//从双重for循环退出后,判断flag的值是否是true,若为true则说明此数为素数
                count++;//存储素数的总和加1
                System.out.println("从2-100之间的素数有:" + i);//输出素数结果
            }
        }
        System.out.println("从2-100之间的素数个数有:" +count);//输出素数总个数
    }

}

explication du code: Dans l 'affaire i = 4

  1. i = 4 4 <100
  2. drapeau = true
  3. j = 2, 2 <4
  4. Parce que i% j == 0 (à savoir, 4% 2 == 0), de sorte flag = false. Et exécuter l'instruction break.
  5. instruction break d'exécution après la sortie du deuxième cycle. (Après avoir effectué instruction break, le code derrière l'instruction break ne sera pas exécuté et mettre fin à la présente couche de cycle)
  6. Parce que maintenant le faux du drapeau n'est pas satisfaite si (drapeau == true) état
  7. Donc i ++ i = 5, le temps est déterminé à entrer

résultats:
Insérer ici l'image Description

4. Nous préparons les œufs:

Insérer ici l'image Description

Je suppose que tu aimes

Origine www.cnblogs.com/Qpgshare/p/12516390.html
conseillé
Classement