A voir également:
- Nombre parfait java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Java runtime - Télécharger - Langages
2 réponses
Utilisateur anonyme
14 oct. 2021 à 07:28
14 oct. 2021 à 07:28
Bonjour
commence par le faire mathématiquement.
Une fois fait, tu pourras le transcrire dans n'importe quel langage.
PS on ne dit pas "java orienté objet" mais simplement "java".
commence par le faire mathématiquement.
Une fois fait, tu pourras le transcrire dans n'importe quel langage.
PS on ne dit pas "java orienté objet" mais simplement "java".
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
Modifié le 15 oct. 2021 à 15:12
Modifié le 15 oct. 2021 à 15:12
Bonjour,
Certains diront que c'est de la triche, mais en réalité ceci est l'implémentation la plus performante vu que la liste des premiers nombres parfaits est déjà connue : https://oeis.org/A000396
Pour aller plus loin, si on parle d'orienté objet, c'est par "opposition" à la programmation impérative, et donc tirer profit au maximum des classes/méthodes fournies par Java.
S'il fallait recalculer soi même ces différentes valeurs on pourrait par exemple écrire le code suivant, dont l'algorithme est certes naïf, mais son implémentation optimisée par Java, notamment avec le multithreading.
Certains diront que c'est de la triche, mais en réalité ceci est l'implémentation la plus performante vu que la liste des premiers nombres parfaits est déjà connue : https://oeis.org/A000396
public static boolean isPerfect(long n) { return n == 6L || n == 28L || n == 496L || n == 8128L || n == 33550336L || n == 8589869056L || n == 137438691328L || n == 2305843008139952128L; }
Pour aller plus loin, si on parle d'orienté objet, c'est par "opposition" à la programmation impérative, et donc tirer profit au maximum des classes/méthodes fournies par Java.
S'il fallait recalculer soi même ces différentes valeurs on pourrait par exemple écrire le code suivant, dont l'algorithme est certes naïf, mais son implémentation optimisée par Java, notamment avec le multithreading.
import java.util.stream.LongStream; public static boolean isPerfect(long n) { return LongStream.rangeClosed(1, n / 2).parallel() .filter(i -> n % i == 0).sum() == n; }