Compte tenu de 3 nombres entiers positifs a
, b
et n
(dont les valeurs maximales sont la valeur entière maximum représentable dans votre langue), la sortie d' une valeur si truthy a ≡ b (mod n)
et Falsey autrement. Pour ceux qui ne connaissent pas les relations de congruence, a ≡ b (mod n)
c'est vrai ssi a mod n = b mod n
(ou, de manière équivalente (a - b) mod n = 0
).
Restrictions
- Les méthodes de test de congruence intégrées sont interdites
- Les opérations modulo intégrées sont interdites (cela inclut les opérations telles que la
divmod
fonction de Python , qui renvoient à la fois le quotient et le reste, ainsi que les fonctions de divisibilité, les fonctions du système de résidus, etc.)
Cas de test
(1, 2, 3) -> False
(2, 4, 2) -> True
(3, 9, 10) -> False
(25, 45, 20) -> True
(4, 5, 1) -> True
(83, 73, 59) -> False
(70, 79, 29) -> False
(16, 44, 86) -> False
(28, 78, 5) -> True
(73, 31, 14) -> True
(9, 9, 88) -> True
(20, 7, 82) -> False
Il s'agit de code-golf , donc le code le plus court (en octets) l'emporte, avec la première soumission en tant que bris d'égalité.
code-golf
math
arithmetic
Mego
la source
la source
/
?Réponses:
Gelée, 5 octets
L'utilisation intensive de tout ce qui n'est pas interdit est autorisée.
Essayez-le en ligne!
Comment ça fonctionne
la source
Python 2, 27 octets
Vérifie si
a-b
est un multiple den
en divisant parn
, ce qui automatiquement les planchers, et voir si multiplier parn
donne le même résultat.la source
Julia, 24 octets
Il s'agit d'une fonction qui accepte trois entiers et renvoie un booléen.
Nous testons simplement si a - b entier divisé par n est égal à a - b float divisé par n . Cela sera vrai lorsqu'il n'y aura pas de reste de division, c'est -à- dire a - b | n , ce qui implique que a - b (mod n ) = 0.
la source
Pyth, 7 octets
Utilise l'indexation cyclique de Pyth.
la source
Haskell, 23 octets
Exemple d'utilisation:
(28#78)5
->True
.Même méthode que dans la réponse de @ xnor .
la source
Minkolang 0,15 ,
1411 octetsEssayez-le ici! L'entrée est attendue comme
a b n
.Explication:
la source
MATL , 9 octets
Le format d'entrée est
Essayez-le en ligne!
la source
Rétine , 20
L'entrée est donnée en unaire, séparés par des espaces, dans l'ordre
n a b
. Sortie 1 pour truey et 0 pour falsey.Essayez-le en ligne.
Si vous préférez la saisie décimale, vous pouvez le faire:
Essayez-le en ligne.
la source
APL, 15 octets
Il s'agit d'une fonction dyadique qui accepte n à gauche et a et b comme tableau à droite.
L'approche ici est fondamentalement la même que dans ma réponse Julia . Nous testons si a - b / n est égal au plancher de lui-même, ce qui sera vrai lorsque a - b (mod n ) = 0.
la source
d=⌊d←⎕÷⍨-/⎕
JavaScript (ES6), 27 octets
@ CᴏɴᴏʀO'Bʀɪᴇɴ a publié une version qui ne fonctionne pas; voici "l'algorithme commun" que les gens utilisent sous une forme qui "fonctionne":
Le mot «fonctionne» est entre guillemets, car le raccourci que nous utilisons pour
Math.floor()
tronque implicitement un nombre pour qu'il soit dans la plage de 32 bits signée. décris.la source
(2, 150, 3) :: (Word8, Word8, Word8)
; le critère que vous spécifiez est explicitement "s'il existe théoriquement une entrée qui rend la réponse invalide, la réponse doit être considérée comme invalide.")(a - b) == a
pour certaines valeurs dea
. Une réponse qui doit être valable dans ces régions frontalières est presque impossible même si je prends la pénalité d'octet et remplace(0|...)
parMath.floor(...).
CJam, 7 octets
L'ordre d'entrée est
n a b
.Testez-le ici.
Explication
la source
Python 3, 27 octets
pow(x,y,n)
calcule(x**y)%n
, donc c'est juste(a-b)**1%n
.la source
ES6, 28 octets
Fonctionne en recherchant un point décimal dans (ab) / n qui, je l'espère, est autorisé.
la source
Sérieusement, 10 octets
Prend l'entrée comme
N\nA\nB\n
(majuscules utilisées pour distinguer les retours à la ligne).Essayez-le en ligne
Cela utilise la même méthode que la réponse de @ AlexA
Explication (lettres majuscules utilisées comme noms de variables à des fins explicatives):
la source
F #, 24 octets
Implémente la même vérification que la réponse @ xnor .
la source