Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- boolean estUnNombrePremier(int num) {
- // On va jusqu'à la moitié car aucun nombre n'est divisible
- // par un nombre plus grand que sa moitie
- int moitie = num / 2;
- boolean estPremier = true;
- // On commence à deux car tous les nombres sont divisibles par 1
- int i = 2;
- // On continue à chercher un diviseur tant que i
- // est plus petit ou égale à la moitié et que num est premier
- while (estPremier && i <= moitie) {
- // num % i == 0 signifie que num est divisible par i
- // num n'est donc pas premier puisqu'il est divisible par quelque
- // chose d'autre que lui même et 1
- if (num % i == 0) {
- estPremier = false;
- }
- i += 1;
- }
- return estPremier;
- }
- // Un nombre parfait est un nombre dont la somme
- // des diviseurs est égale à ce nombre
- // Par exemple 6 est divisible par 1, 2 et 3 et
- // 1+2+3 == 6
- // Donc 6 est un nombre parfait
- boolean estUnNombreParfait(int num) {
- int moitie = num / 2;
- // On commence la somme à 1 car tous les
- // nombres sont divisibles par 1
- int somme = 1;
- int i = 2;
- while (i <= moitie && somme <= num) {
- if (num % i == 0) {
- somme += i;
- }
- i += 1;
- }
- return somme == num;
- }
- void tousLesNombresParfaits() {
- int n = askInteger("Jusqu'à quel nombre chercher les nombres premiers");
- for (int i = 0; i < n; i++) {
- if (estUnNombreParfait(i)) {
- println(i);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement