a^b mod m (go)
46^9 mod 598.
Énoncé
Calculez 46^ mod 598 (mod positif).
Entrée : trois entiers : 46 9 598
Sortie : une ligne, dans [0, mod−1].
Contraintes réelles
- Entrée : une seule ligne sur stdin (format indiqué ci-dessus), sans espaces superflus en fin de ligne.
- Sortie : une seule ligne sur stdout, exactement la valeur demandée (pas de texte d’explication).
- go : bibliothèque standard uniquement ; pas d’accès réseau ni de fichiers autres que stdin/stdout.
- Complexité : respecter la borne indiquée dans l’énoncé (souvent O(n) ou O(n²) pour n ≤ 16).
Parcours pédagogique
- Piste : Arithmétique modulaire (
serie-e-mod) — étape 1 sur cette famille. - Objectif : Exponentiation rapide modulo m.
- Indice global : numéro de défi 8708 / 10000 (famille 8/25, variante 349 / 400).
Indices
- Parsez stdin en types exacts (entier 64 bits signé si nécessaire).
- Testez sur papier avec les petites valeurs du gabarit.
- Vérifiez les cas limites mentionnés.
Solution possible
- Exponentiation binaire : base^exp mod m en O(log exp).
Pseudo-code (go)
# lire la ligne stdin → variables
# appliquer l’algorithme décrit
# print(resultat) # une ligne
Résultat de référence (tests automatisés)
La CI exécute la même logique que ce dépôt sur votre variante : la sortie attendue est exactement :
138
Référence (tests automatisés) : 138
Proposer une solution
Connectez-vous ou créez un compte pour envoyer votre texte (aucune exécution de code côté serveur).