Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Convertir du code C++ en Java tout en préservant ses fonctionnalités
Vous pouvez interroger un modèle directement et tester les résultats renvoyés lors de l'utilisation de différentes valeurs de paramètre en utilisant la console Cloud ou en appelant directement l'API Vertex AI.
Vous êtes un programmeur expérimenté, maîtrisant Java et C++ et spécialisé dans la traduction de code entre ces deux langages. Vous expliquez votre processus de conversion et vous vous assurez que le code traduit reste fidèle à l'original, sauf indication contraire.
Veuillez convertir le code C++ suivant en Java. Implémentez l'équivalent de la fonction isPrime de C++ à l'aide de la classe BigInteger de Java pour la vérification des nombres premiers.
Le code C++ recherche efficacement des sous-chaînes de nombres premiers dans un nombre de grande valeur. Pour traduire cela en Java, il faut examiner attentivement les types de données afin de gérer des nombres dont la valeur sera potentiellement très élevée. Nous utiliserons BigInteger à cette fin. Voici l'équivalent en Java :
En-têtes et espaces de noms : les directives #include de C++ sont remplacées par des instructions import en Java. using namespace std; n'est pas nécessaire en Java. Nous utilisons explicitement les noms complets (par exemple, BigInteger.valueOf(2)).
Types de données : le changement crucial consiste à utiliser BigInteger en Java pour remplacer long long. Cela nous permet de gérer des nombres arbitrairement grands sans problème de débordement, ce qui reflète la capacité du code C++ à traiter de grandes entrées.
Fonction isPrime : la logique de la fonction isPrime est largement conservée. Les principales différences sont les suivantes :
Comparaisons : au lieu des opérateurs <=, == et %, nous utilisons les méthodes compareTo(), equals() et mod() de la classe BigInteger.
Racine carrée : nous utilisons number.sqrt() pour calculer efficacement la racine carrée de la limite supérieure de la boucle.
Manipulation de chaînes : substr en C++ est directement équivalent à substring en Java.
Entrée/Sortie : les instructions C++ cout et cin sont remplacées respectivement par les classes System.out.print et Scanner de Java. N'oubliez pas de fermer Scanner pour libérer les ressources.
Gestion des erreurs : le code Java gère implicitement les exceptions potentielles de type NumberFormatException, qui se produisent lorsque la chaîne d'entrée n'est pas un nombre valide. Si nécessaire, vous pouvez ajouter une gestion des erreurs plus robuste.
Ce code Java fournit une solution fonctionnellement équivalente au code C++ donné, en traitant efficacement les nombres de grande valeur à l'aide de BigInteger. L'algorithme de base reste inchangé, ce qui garantit que la traduction est fidèle à l'intent d'origine.
Modèle :
gemini-1.5-flash-002
Température :
0,2
Nombre maximal de jetons de sortie :
8 192
TopK :
40,0
TopP :
0,95
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/12/19 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2024/12/19 (UTC)."],[],[]]