Definiciones:
- Un triángulo se considera un triángulo rectángulo si uno de los ángulos internos es exactamente 90 grados.
- Un número se considera racional si se puede representar mediante una relación de enteros, es decir
p/q, donde ambospyqson enteros. - Un número
nes un número congruente si existe un triángulo rectángulo de áreandonde los tres lados son racionales. - Este es OEIS A003273 .
Reto
Este es un desafío de decisión-problema . Dado un número de entrada x, genera un valor distinto y coherente si xes un número congruente, y un valor distinto y coherente separado si xno es un número congruente. Los valores de salida no necesariamente tienen que ser veraz / falsey en su idioma.
Regla especial
Para los propósitos de este desafío, puede asumir que la conjetura de Birch y Swinnerton-Dyer es cierta. Alternativamente, si puede probar la conjetura de Birch y Swinnerton-Dyer, vaya a reclamar su premio Millennium de $ 1,000,000. ;-)
Ejemplos
(Utilizando Truepara números congruentes y de Falseotra manera).
5 True
6 True
108 False
Reglas y aclaraciones
- La entrada y salida se pueden dar por cualquier método conveniente .
- Puede imprimir el resultado en STDOUT o devolverlo como resultado de una función. Indique en su envío qué valores puede tomar la salida.
- Un programa completo o una función son aceptables.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
code-golf
decision-problem
number-theory
AdmBorkBork
fuente
fuente

Respuestas:
R,
179173142141137135134 bytesUsando los mismos argumentos basados en el Teorema de Tunnell , devuelve un
0ifnno es congruente y de lo1contrario. (Me tomó mucho tiempo detectar la restricción en la condición que solo se aplica a enteros sin cuadrados ).Pruébalo en línea
Mejoras aportadas por Arnaud y Giuseppe (¡el código final es principalmente Guiseppe!), Con -3 gracias a Robin
Análisis de sintaxis:
con el Teorema de Tunnell que establece que n es congruente si y solo si el número de soluciones enteras a 2x² + y² + 8z² = n es el doble que el número de soluciones enteras a 2x² + y² + 32z² = n si n es impar y el número de soluciones enteras a 8x² + y² + 16z² = n es el doble que el número de soluciones enteras a 8x² + y² + 64z² = n si n es par.
fuente
@[username]... Supongo que Robin Ryder te metió en el golf de código.-n:n? No leí el teorema de Tunnel, pero me parece quen:0funcionaría igual de bien para -1 byte ... Además, consejo profesional, si presionas el botón de "enlace" en la parte superior de TIO, estarás bien formatos para copiar y pegar en PPCG :-) EDITAR: Ya veo, hay algunos casos en losn:0que no funciona.Óxido - 282 bytes
Ver también:
corregido par / impar, gracias @Level River St
fuente
C ++ (gcc) ,
251234 bytesGracias a @arnauld por señalar un error tipográfico de mi parte.
-17 bytes gracias a @ceilingcat.
Pruébalo en línea!
Devuelve 1 si
nes congruente, 0 de lo contrario.fuente
JavaScript (ES7), 165 bytes
Al igual que la respuesta de @ NeilA. , esto se basa en el teorema de Tunnell y, por lo tanto, supone que la conjetura de Birch y Swinnerton-Dyer es cierta.
Devuelve un valor booleano.
Pruébalo en línea!
¿Cómo?
fuente
Ruby , 126 bytes
Pruébalo en línea!
Encontré un lugar para inicializar
t=1y expandí la lista de cuadrados en un triplete en lugar de usarqpara hacer copias adicionales.Rubí , 129 bytes
Pruébalo en línea!
Utiliza el teorema de Tunnell como las otras respuestas. Yo uso una sola ecuación de la siguiente manera.
Comprobamos los casos
k=8yk=32y compruebe si hay el doble de muchas soluciones parak=8quek=32. Esto se hace mediante la adiciónk-16atcada vez que encontramos una solución. Esto es +16 en el casok=32o -8 en el casok=8. En general, el número es congruente sites el mismo que su valor inicial al final de la función.Es necesario encontrar todas las soluciones a la ecuación de prueba. Veo muchas respuestas probando entre +/-
sqrt n. Está perfectamente bien probar también fuera de estos límites si hace que el código sea más corto, pero no se encontrarán soluciones porque el lado izquierdo de la ecuación excederán. Lo que me perdí al principio es que negativo y positivox,y,zse consideran por separado. Por lo tanto,-3,0,3produce tres cuadrados9,0,9y todas las soluciones deben contarse por separado (0 debe contarse una vez y9debe contarse dos veces).Código sin golf
fuente