-
Notifications
You must be signed in to change notification settings - Fork 39
/
CUAD.HTM
447 lines (447 loc) · 29.8 KB
/
CUAD.HTM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
<!doctype html>
<html lang="es" prefix="og: http://ogp.me/ns# article: http://ogp.me/ns/article#">
<head>
<meta charset="utf-8">
<meta name="Author" content="Dario Alejandro Alpern">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Halla soluciones enteras de la ecuación ax^2 + bxy + cy^2 + dx + ey + f = 0.">
<meta name="keywords" content="ecuaciones enteras, Pell, ecuaciones de Pell">
<meta name="theme-color" content="#db5945">
<meta name="twitter:card" content="summary_large_image">
<meta property="og:title" content="Resolución de ecuaciones cuadráticas en dos variables enteras">
<meta property="og:type" content="article">
<meta property="og:site_name" content="Alpertron">
<meta property="og:url" content="https://www.alpertron.com.ar/CUAD.HTM">
<meta property="og:image" content="https://www.alpertron.com.ar/cuad.png">
<meta property="og:image:width" content="735">
<meta property="og:image:height" content="385">
<meta property="og:image:alt" content="Captura de pantalla">
<meta property="og:locale" content="es_ES">
<meta property="og:locale:alternate" content="en_US">
<meta property="og:description" content="Halla soluciones de ax^2 + bxy + cy^2 + dx + ey + f = 0.">
<meta property="article:published_time" content="2024-11-04">
<meta property="fb:app_id" content="1495228927625175">
<link rel="alternate" hreflang="es" href="https://www.alpertron.com.ar/CUAD.HTM">
<link rel="alternate" hreflang="en" href="https://www.alpertron.com.ar/QUAD.HTM">
<link rel="manifest" href="cuad.webmanifest">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" href="quad-icon-180px.png">
<link rel="canonical" href="https://www.alpertron.com.ar/CUAD.HTM">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Q7PH40GPHC"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-Q7PH40GPHC');
</script>
<title>Resolución de ecuaciones cuadráticas en dos variables enteras</title>
<style>
@media only screen {
nav {background-color:#000080; width:100%; margin:0px; text-align:center}
nav ul {padding:0; margin:0 auto; list-style:none; display:inline-block}
nav li {float:left; position:relative; display:block; margin-top:0px; margin-bottom:0px; margin-left:5px; margin-right:5px; background-color:#000080; color:#FFFFFF; cursor: pointer; text-align:left}
nav li[aria-expanded="true"] {background-color:#004000; color:#FFFFFF}
nav li ul {display:none; position:absolute}
nav li[aria-expanded="true"] ul.alignleft {display:block; height:auto}
nav li[aria-expanded="true"] ul.alignright {display:block; height:auto; right:0px; background-color:#004000}
nav li ul li {clear:both; white-space: nowrap; border:0px; background-color:#004000; width:100%; padding-top:1em; padding-bottom:0.5em}
nav a:link{color:#FFFFFF; text-decoration:none}
nav a:visited{color:#FFFFFF; text-decoration:none}
nav a:hover{background-color:#004000; color:#FFFFFF; text-decoration:none}
nav a:active{background-color:#004000; color:#FFFFFF; text-decoration:none}
nav li ul li a:link{background-color:#004000; color:#FFFFFF; display:block; width:100%}
nav li ul li a:visited{background-color:#004000;color:#FFFFFF; display:block; width:100%}
nav li ul li a:hover{background-color:#FFFFFF; color:#004000; display:block; width:100%}
nav li ul li a:active{background-color:#FFFFFF; color:#004000; display:block; width:100%}
nav::after {clear:both}
@media (max-width: 400px) { nav { font-size:0.7em;} }
@media (min-width: 400px) { nav { font-size:1em;} }
@media screen and (min-width: 500px) {#coefLeft {float:left;width:50%;} #coefRight {float:right;width:50%;}}
@media (min-width: 500px) {#formleft {float:left;width:50%;} #formright {float:right;width:50%;}}
}
@media only print {nav, #footer {display:none;}}
.modal-header {padding: 2px 10px; background-color: #5cb85c; color: white}
.modal-body {padding: 2px 10px}
.modal-content {
position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
background-color: #fefefe;
padding: 0;
border: 1px solid #888;
width: 80%;
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
}
.modal {
display: none;
position: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgb(0,0,0);
background-color: rgba(0,0,0,0.4);
}
input[type=text], input[type=email], input[type=number] {min-height:2em; border-radius:10px}
input[type=button], button {min-height:2.5em; min-width:2.5em; border-radius:5px}
#close {float:right}
#modal-header-text {font-size:1.5em}
#sending, #sentOK, #notSent {display:none}
.center {text-align:center}
#skip a {padding:6px; position:absolute; top:-40px; left:0px; color:white; border-right:1px solid white; border-bottom:1px solid white; border-bottom-right-radius:8px; background:#BF1722; transition:top 1s ease-out; z-index:100}
#skip a:focus {position:absolute; left:0px; top:0px; outline-color:transparent; transition: top .1s ease-in}
.bread {padding:0px;list-style:none; display:inline-block;}
.bread li {display:inline}
.bread li+li:before {content:"›"}
body {font-family: Arial, sans-serif; margin: 0; padding: 0; background-color:#FFFFFF; color:#000000}
main {padding:10px;}
h1, .h2title {text-align:center}
h2 {font-size: 120%;}
button {border-radius:5px}
#actions button {color: white; background-color: #3b3b3b; margin:3px; border-radius:10px}
#actions button {min-height:3em}
.actbtn {display:flex; flex-flow:row wrap; justify-content:space-around}
.funcbtns {display:flex; justify-content:space-around; flex-flow:row wrap; margin-top:3px; margin-bottom:3px}
.funcbtns button {margin:3px}
fieldset {border-radius:10px}
#equation {grid-column:1/3; grid-row:1}
#inputs {grid-column:1/3; grid-row:2}
#actions {grid-column:1; grid-row:3; width:320px}
#functions {grid-column:2/3; grid-row:3}
.applet {margin-left: auto;margin-right: auto; border: 0px none;width:90%;text-align:center;background-color:#c0c0c0;padding:10px;border-radius:10px}
#valueapp {display:grid}
.hex {font-family: Courier, "Lucida Console", monospace}
.lf,.coef,.labels {padding:0.2em; clear:both;}
.i {font-style: italic;}
.atright {float:right;}
.box {font-weight:bold; text-align:center; border-style:double; display:table-cell;border-radius:10px;}
.outerbox {display:table; color:blue;}
.box > p {margin-left:5px;margin-right:5px;}
.eq {color:red; font-weight:bold;}
.sqrtout {white-space: nowrap}
.sqrtout:before {content: "√"}
.sqrtin {text-decoration:overline}#help,#result,#status,#footer {margin: 3px; padding: 3px;}
.bold {font-weight:bold;}
.new {color: #0000FF; font-weight:bold}
.funcbtn {margin:3px}
#feedback {display:none}
.inputfbck{width: calc(100% - 10em);float:right;padding:3px;margin:0px;}
.input{width: calc(100% - 3em);float:right;padding:3px;margin:0px;}
@media (max-width: 53em) {
#actions {grid-column:1/3; grid-row:1; width:95%}
#equation {grid-column:1/3; grid-row:2}
#inputs {grid-column:1/3; grid-row:3}
#functions {grid-column:1/3; grid-row:4}
}
@media screen and (prefers-color-scheme: dark) {
body {color: #ddd; background-color: #121212}
.applet {background-color:#606060; color: #fff}
a {color: #a3d4a7}
a:link,a:active {color: #a3d4a7}
a:hover {color: #f5cba7}
a:visited {color: #d7bde2}
input, textarea {color: white; background-color: #3b3b3b}
button:disabled {color: #808080; background-color: #606060}
.outerbox {color:#E0E000}
.new {color: #E0E000}
}
</style>
<noscript>
<style>
.applet {display:none}
</style>
</noscript>
</head>
<body>
<div id="skip"><a href="#main">Ir al contenido principal</a></div>
<nav aria-label="Navegación principal">
<ul role="menubar">
<li role="menuitem" aria-haspopup="true" aria-expanded="false" tabindex="0">Electrónica
<ul role="menu" class="alignleft popup">
<li role="menuitem"><a href="INTEL.HTM" title="Todos los microprocesadores de Intel desde el 4004 al Pentium">Microprocesadores Intel</a></li>
</ul>
</li>
<li role="menuitem" aria-haspopup="true" aria-expanded="false" tabindex="-1">Matemáticas
<ul role="menu" class="alignleft popup">
<li role="menuitem"><a href="CALDORAS.HTM" title="Aplicaciones web que implementan calculadoras">Calculadoras</a></li>
<li role="menuitem"><a href="TNUMEROS.HTM" title="Artículos y programas sobre teoría de números">Teoría de números</a></li>
<li role="menuitem"><a href="PROBLEMAS.HTM" title="Problemas matemáticos interesantes">Problemas</a></li>
</ul>
</li>
<li role="menuitem" aria-haspopup="true" aria-expanded="false" tabindex="-1">Programas
<ul role="menu" class="alignright popup">
<li role="menuitem"><a href="ENSAM386.HTM" title="Programas escritos en lenguaje ensamblador del 80386">Assembler 80386</a></li>
<li role="menuitem"><a href="PROGJAVA.HTM" title="Aplicaciones web con JavaScript y WebAssembly">Aplicaciones web</a></li>
<li role="menuitem"><a href="JUEGOS.HTM" title="Juegos en línea y para descargar">Juegos</a></li>
</ul>
</li>
<li class="alignright" role="menuitem" aria-haspopup="true" aria-expanded="false" tabindex="-1">Contacto
<ul role="menu" class="alignright popup">
<li role="menuitem"><a href="PERSONAL.HTM" title="Información personal">Personal</a></li>
<li role="menuitem"><a href="FORMULAR.HTM" title="Formulario para enviar comentarios">Comentarios</a></li>
<li role="menuitem"><a href="GBOOK.HTM" title="Viejo y nuevo libro de visitas">Libro de invitados</a></li>
<li role="menuitem"><a href="PRIVACIDAD.HTM" title="Política de privacidad">Privacidad</a></li>
<li role="menuitem"><a href="DONACIONES.HTM" title="Donaciones al autor de este sitio Web">Donaciones</a></li>
</ul>
</li>
</ul>
<ul class="atright"><li><a href="QUAD.HTM" hreflang="en" title="This Web page in English">ENG</a></li></ul>
</nav>
<main id="main">
<article>
<h1>Resolución de ecuaciones cuadráticas en dos variables enteras</h1>
<ol class="bread" vocab="https://schema.org/" typeof="BreadcrumbList">
<li property="itemListElement" typeof="ListItem">
<a property="item" typeof="WebPage" href="/"><span property="name">Alpertron</span></a>
<meta property="position" content="1">
</li>
<li property="itemListElement" typeof="ListItem">
<a property="item" typeof="WebPage" href="PROGJAVA.HTM"><span property="name">Aplicaciones web</span></a>
<meta property="position" content="2">
</li>
<li property="itemListElement" typeof="ListItem">
<span property="name">Resolución de ecuaciones cuadráticas en dos variables enteras</span>
<meta property="position" content="3">
</li>
</ol>
<noscript><p><strong>La calculadora no funciona con Javascript deshabilitado. Por favor revise la configuración de su navegador.</strong></p></noscript>
<div class="applet" id="valueapp">
<div id="equation">
<var>a</var>⁢<var>x</var>² + <var>b</var>⁢<var>x</var>⁢<var>y</var> + <var>c</var>⁢<var>y</var>² + <var>d</var>⁢<var>x</var> + <var>e</var>⁢<var>y</var> + <var>f</var> = 0
</div>
<div id="inputs">
<div id="coefLeft">
<div class="coef"><label for="coefA"><var>a</var></label> <input type="text" id="coefA" inputmode="numeric" value="" class="input" aria-label="Coeficiente A"></div>
<div class="coef"><label for="coefB"><var>b</var></label> <input type="text" id="coefB" inputmode="numeric" value="" class="input" aria-label="Coeficiente B"></div>
<div class="coef"><label for="coefC"><var>c</var></label> <input type="text" id="coefC" inputmode="numeric" value="" class="input" aria-label="Coeficiente C"></div>
</div>
<div id="coefRight">
<div class="coef"><label for="coefD"><var>d</var></label> <input type="text" id="coefD" inputmode="numeric" value="" class="input" aria-label="Coeficiente D"></div>
<div class="coef"><label for="coefE"><var>e</var></label> <input type="text" id="coefE" inputmode="numeric" value="" class="input" aria-label="Coeficiente E"></div>
<div class="coef"><label for="coefF"><var>f</var></label> <input type="text" id="coefF" inputmode="numeric" value="" class="input" aria-label="Coeficiente F"></div>
</div>
</div>
<fieldset id="actions"><legend>Acciones</legend>
<div class="actbtn">
<button type="button" id="solve" title="Hallar los valores de x e y">Resolver</button>
<button type="button" id="steps" title="Mostrar cómo se obtienen las soluciones">Mostrar<br>pasos</button>
<button type="button" id="stop" title="Detener el cálculo">Detener</button>
<button type="button" id="helpbtn" title="Leer información sobre esta calculadora">Ayuda</button>
<button type="button" id="config" title="Cambiar los parámetros de uso de la aplicación">Config</button>
<button type="button" id="clrinput" title="Limpiar las cajas de entrada">Borrar<br>entrada</button>
</div>
</fieldset>
<fieldset id="functions"><legend>Funciones</legend>
<div>
<label for="funccat">Categorías:</label>
<select id="funccat">
<optgroup label="Funciones u operadores">
<option value="0" selected>Matemática básica</option>
<option value="1">Comparaciones</option>
<option value="2">Lógica</option>
<option value="3">Divisibilidad</option>
<option value="4">Matemática recreativa</option>
<option value="5">Teoría de números</option>
<option value="6">Otros</option>
</optgroup>
</select>
</div>
<div id="funcbtns" class="funcbtns">
<button type="button">(</button><button type="button">)</button><button type="button">+</button><button type="button">-</button><button type="button">*</button><button type="button">/</button><button type="button">%</button><button type="button">^</button><button type="button">ans</button><button type="button">sqrt(</button><button type="button">iroot(</button><button type="button">Random(</button><button type="button">Abs(</button><button type="button">Sign(</button>
</div>
</fieldset>
</div>
<div id="help" aria-live="polite">
<p>Esta aplicación Web resuelve ecuaciones de la forma <strong>a⁢x² + b⁢x⁢y + c⁢y² + dx + ey + f = 0</strong> donde las incógnitas <strong>x</strong> e <strong>y</strong> son números enteros.</p>
<p>El programa acepta números de hasta 10000 dígitos, pero el algoritmo utilizado requiere factorizar algunos números (en general los números grandes no se pueden factorizar en un tiempo razonable). El motor de factorización utilizado es el de la aplicación de <a href="ECM.HTM">factorización de números enteros</a>, que usa los métodos ECM y SIQS.</p>
<p>Si hay muchas soluciones, la aplicación se puede quedar sin memoria y no mostrará ningún resultado.</p>
<h2>Expresiones</h2>
<p>Puedes ingresar expresiones que usen los siguientes operadores y paréntesis:</p>
<ul>
<li> + para suma</li>
<li> - para resta</li>
<li> * para multiplicación</li>
<li> / para división entera</li>
<li> % para el resto de la división entera</li>
<li> ^ o ** para exponenciación (el exponente debe ser mayor o igual que cero).</li>
<li> <strong><</strong>, <strong>==</strong>, <strong>></strong>; <strong><=</strong>, <strong>>=</strong>, != para comparaciones. Los operadores devuelven cero si es falso y -1 si es verdadero.</li>
<li> <strong>Ans</strong>: obtiene la última respuesta.</li>
<li> <strong>AND</strong>, <strong>OR</strong>, <strong>XOR</strong>, <strong>NOT</strong> para lógica binaria. Las operaciones se hacen en binario (base 2). Se agregan infinitos ceros (unos) a la izquerda de los números positivos (negativos).</li>
<li> <strong>SHL</strong> o <strong><<</strong>: Si <var>b</var> ≥ 0, <var>a</var> SHL <var>b</var> desplaza el valor <var>a</var> a la izquierda la cantidad de bits especificada por <var>b</var>. Esto equivale a <var>a</var> × 2<sup><var>b</var></sup>. En caso contrario, <var>a</var> SHL <var>b</var> desplaza el valor <var>a</var> a la derecha la cantidad de bits especificada por −<var>b</var>. Esto equivale a floor(<var>a</var> / 2<sup>−<var>b</var></sup>). Ejemplo: 5 SHL 3 = 40.</li>
<li> <strong>SHR</strong> o <strong>>></strong>: Si <var>b</var> ≥ 0, <var>a</var> SHR <var>b</var> desplaza el valor <var>a</var> a la derecha la cantidad de bits especificada por <var>b</var>. Esto equivale a floor(<var>a</var> / 2<sup><var>b</var></sup>). En caso contrario, <var>a</var> SHR <var>b</var> desplaza el valor <var>a</var> a la izquierda la cantidad de bits especificada por −<var>b</var>. Esto equivale a <var>a</var> × 2<sup>−<var>b</var></sup>. Ejemplo: -19 SHR 2 = -5.</li>
<li> <strong>n!</strong>: factorial (<var>n</var> debe ser mayor o igual que cero). Ejemplo: 6! = 6 × 5 × 4 × 3 × 2 = 720.</li>
<li> <strong>n!! ... !</strong>: factorial múltiple (<var>n</var> debe ser mayor o igual que cero). Es el producto de <var>n</var> por <var>n</var> − <var>k</var> por <var>n</var> − <var>2k</var> ... (todos los números son mayores que cero) donde <var>k</var> es la cantidad de signos de exclamación. Ejemplo: 7!! = 7 × 5 × 3 × 1 = 105.</li>
<li> <strong>p#</strong>: primorial (producto de todos los primos menores o iguales a <var>p</var>). Ejemplo: 12# = 11 × 7 × 5 × 3 × 2 = 2310.</li>
<li> <strong>B(n)</strong>: Número probablemente primo anterior a <var>n</var>. Ejemplo: B(24) = 23.</li>
<li> <strong>F(n)</strong>: Número de Fibonacci F<sub>n</sub> que corresponde a la secuencia 0, 1, 1, 2, 3, 5, 8, 13, 21, etc. donde cada elemento es igual a la suma de los dos anteriores. Ejemplo: F(7) = 13.</li>
<li> <strong>L(n)</strong>: Número de Lucas L<sub>n</sub> = F<sub><var>n</var>-1</sub> + F<sub><var>n</var>+1</sub></li>
<li> <strong>N(n)</strong>: Número probablemente primo posterior a <var>n</var>. Ejemplo: N(24) = 29.</li>
<li> <strong>P(n)</strong>: particiones irrestrictas (cantidad de descomposiciones de <var>n</var> en sumas de números enteros sin tener en cuenta el orden). Ejemplo: P(4) = 5 porque el número 4 se puede particionar de 5 formas distintas: 4 = 3+1 = 2+2 = 2+1+1 = 1+1+1+1.</li>
<li> <strong>Gcd(m,n, ...)</strong>: Máximo común divisor de estos números enteros. Ejemplo: GCD(12,16) = 4.</li>
<li> <strong>Lcm(m,n, ...)</strong>: Mínimo común múltiplo de estos números enteros. Ejemplo: LCM(12,16,24) = 48.</li>
<li> <strong>FloorDiv(m,n)</strong>: parte entera del cociente de <var>m</var> dividido por <var>n</var>. Ejemplos: floordiv(10, 7) = 1 y floordiv(-10, 7) = -2.</li>
<li> <strong>Mod(m,n)</strong>: valor de <var>m</var> módulo el valor absoluto de <var>n</var>. Ejemplos: Mod(10, 7) = 3 y Mod(-10, 7) = 4.</li>
<li> <strong>Modinv(m,n)</strong>: inverso de <var>m</var> módulo <var>n</var>, sólo válido cuando <var>m</var> y <var>n</var> son coprimos, es decir que no tienen factores en común. Ejemplo: Modinv(3,7) = 5 porque 3 × 5 ≡ 1 (mod 7)</li>
<li> <strong>Modpow(m,n,r)</strong>: halla <var>m</var><sup><var>n</var></sup> módulo <var>r</var>. Ejemplo: Modpow(3, 4, 7) = 4, porque 3<sup>4</sup> ≡ 4 (mod 7).</li>
<li> <strong>Totient(n)</strong>: cantidad de enteros positivos menores que <var>n</var> coprimos con <var>n</var>. Ejemplo: Totient(6) = 2 porque 1 y 5 no tienen factores en común con 6.</li>
<li> <strong>Jacobi(m,n)</strong>: obtiene el símbolo de Jacobi de <var>m</var> y <var>n</var>. Cuando el segundo argumento es primo, el resultado es cero si <var>m</var> es múltiplo de <var>n</var>, es uno si hay una solución a <var>x</var>² ≡ <var>m</var> (mód <var>n</var>) y es igual a −1 cuando la congruencia mencionada no tiene soluciones.</li>
<li> <strong>Random(m,n)</strong>: número entero aleatorio entre <var>m</var> y <var>n</var>.</li>
<li> <strong>Abs(n)</strong>: valor absoluto de <var>n</var>.</li>
<li> <strong>Sign(n)</strong>: retorna cero si <var>n</var> es zero, −1 si es negativo o 1 si es positivo.</li>
<li> <strong>IsPrime(n)</strong>: retorna cero si <var>n</var> no es un primo probable y −1 si lo es. Ejemplo: IsPrime(5) = −1.</li>
<li> <strong>Sqrt(n)</strong>: parte entera de la raíz cuadrada del argumento.</li>
<li> <strong>Iroot(n,r)</strong>: Raíz r-ésima entera del primer argumento. Ejemplo: Iroot(8, 3) = 2.</li>
<li> <strong>NumFact(n)</strong>: cantidad de factores primos distintos de <var>n</var>. Ejemplo: NumFact(28) = 2 porque los factores primos son 2 y 7.</li>
<li> <strong>MinFact(n)</strong>: mínimo factor primo de <var>n</var>. Ejemplo: MinFact(28) = 2 porque los factores primos son 2 y 7.</li>
<li> <strong>MaxFact(n)</strong>: máximo factor primo de <var>n</var>. Ejemplo: MaxFact(28) = 7 porque los factores primos son 2 y 7.</li>
<li> <strong>NumDivs(n)</strong>: cantidad de divisores positivos de <var>n</var>. Ejemplo: NumDivs(28) = 6 porque los divisores de 28 son 1, 2, 4, 7, 14 y 28.</li>
<li> <strong>SumDivs(n)</strong>: suma de todos los divisores positivos de <var>n</var>. Ejemplo: SumDivs(28) = 56 porque 1 + 2 + 4 + 7 + 14 + 28 = 56.</li>
<li> <strong>NumDigits(n,r)</strong>: cantidad de dígitos de <var>n</var> en base <var>r</var>. Ejemplo: NumDigits(13, 2) = 4 porque 13 en binario (base 2) se expresa como 1101.</li>
<li> <strong>SumDigits(n,r)</strong>: suma de dígitos de <var>n</var> en base <var>r</var>. Ejemplo: SumDigits(213, 10) = 6 porque la suma de los dígitos expresados en decimal es 2+1+3 = 6.</li>
<li> <strong>RevDigits(n,r)</strong>: halla el valor que se obtiene escribiendo para atrás los dígitos de <var>n</var> en base <var>r</var>. Ejemplo: RevDigits(213, 10) = 312.</li>
<li> <strong>ConcatFact(m,n)</strong>: concatena los factores primos de <var>n</var> de acuerdo al modo expresado en <var>m</var> según lo indicado en la siguiente tabla:
<table>
<caption>Modos de la función ConcatFact</caption>
<tr><th scope="col">Modo</th><th scope="col">Orden de los factores</th><th scope="col">Factores repetidos</th><th scope="col">Ejemplo</th></tr>
<tr><td>0</td><td>Creciente</td><td>No</td><td>concatfact(0,36) = 23</td></tr>
<tr><td>1</td><td>Decreciente</td><td>No</td><td>concatfact(1,36) = 32</td></tr>
<tr><td>2</td><td>Creciente</td><td>Sí</td><td>concatfact(2,36) = 2233</td></tr>
<tr><td>3</td><td>Decreciente</td><td>Sí</td><td>concatfact(3,36) = 3322</td></tr>
</table>
</li>
</ul>
<p>Puedes usar el prefijo <em>0x</em> para números hexadecimales, por ejemplo 0x38 es igual a 56.</p>
<p>El símbolo de exponenciación no se encuentra en algunos dispositivos móviles. En este caso se puede ingresar dos asteriscos (**) para representar el operador de exponenciación.</p>
<div class="noand">
<h2>Configuración</h2>
<p>Puedes cambiar la configuración de esta aplicación apretando el botón <strong>Config</strong> mientras el programa no está factorizando. En ese momento aparecerá una nueva ventana donde puedes seleccionar los siguientes ajustes:</p>
<ul>
<li><strong>Dígitos por grupo</strong>: Para mejorar la legibilidad, los números grandes se separan mediante espacios formando grupos de una cantidad fija de dígitos. Con esta caja de entrada, puedes determinar la cantidad de dígitos por grupo.</li>
<li><strong>Teclado</strong>: Esto permite que el usuario seleccione entre el teclado virtual númerico o completo (alfanumérico). El teclado virtual aparece en la pantalla cuando el usuario selecciona una caja de entrada en pantallas táctiles.</li>
</ul>
<p>La configuración se almacena en tu dispositivo, así que si arrancas nuevamente la calculadora, los ajustes no se modificarán.</p>
<h2>Código fuente</h2>
<p>Puedes bajar el código fuente de esta aplicación y del viejo applet de ecuaciones cuadráticas enteras desde <a href="https://github.com/alpertron/calculators">GitHub</a>. El código fuente está escrito en lenguaje C, por lo que es necesario <a href="https://emscripten.org/docs/getting_started/downloads.html">Emscripten</a> para generar JavaScript.</p>
</div>
<p>Escrito por Dario Alpern. Actualizado el 10 de noviembre de 2024.</p>
</div>
<div id="result" aria-live="polite"></div>
<div id="footer">
<p><span class="new">¡Nuevo!</span> Puedes instalar una aplicación para Android que incluye esta calculadora desde <a href="https://play.google.com/store/apps/details?id=ar.com.alpertron.calculators">Google Play</a>.</p>
<p>Si encuentra algún error o tiene algún comentario, por favor llene el <a href="#" id="formlink">formulario</a>.</p>
<p>Si le gustan estas calculadoras y desea soportar el software libre sin propagandas molestas, puede <a href="https://www.PayPal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MR65QPWZM5JT6&source=url&locale.x=es_ES">donar a través de PayPal</a>.</p>
</div>
</article>
</main>
<div id="modal-config" class="modal" role="dialog" aria-labelledby="conf">
<div class="modal-content">
<div class="modal-header"><span id="close-config" aria-label="close" class="atright">×</span><p id="conf">Configuración</p></div>
<div class="modal-body">
<div class="applet">
<fieldset>
<legend>Parámetros de configuración</legend>
<p><label for="digits">Dígitos por grupo</label> <input type="number" id="digits" value="6" min="0" max="10000" step="1"></p>
<p><label for="kbd">Teclado: </label><select id="kbd"><option value="numeric">Numérico</option><option value="comp">Completo</option></select>
</fieldset>
<p><button type="button" id="save-config" title="Almacenar la nueva configuración">Aceptar</button>
<button type="button" id="cancel-config" title="Descartar los cambios hechos a la configuración">Cancelar</button></p>
</div>
</div></div></div>
<aside id="feedback" aria-label="Formulario de comentarios">
<h2 class="h2title">Formulario de comentarios</h2>
<form class="applet" id="formfeedback">
<input type="hidden" name="subject" value="Comentario de calculadora de ecuaciones cuadraticas enteras">
<div id="formleft">
<div class="labels"><label for="name">Nombre:</label><input class="inputfbck" type="text" name="Nombre" maxlength="40" id="name" autocomplete="name"></div>
<div class="labels"><label for="age">Edad:</label><input class="inputfbck" type="number" name="Edad" min="0" max="999" id="age"></div>
<div class="labels"><label for="city">Ciudad:</label><input class="inputfbck" type="text" name="Ciudad" maxlength="70" id="city" autocomplete="address-level2"></div>
<div class="labels"><label for="province">Provincia:</label><input class="inputfbck" type="text" name="Provincia" maxlength="70" id="province" autocomplete="address-level1"></div>
<div class="labels"><label for="country">País:</label><input class="inputfbck" type="text" name="Pais" maxlength="70" id="country" autocomplete="country-name"></div>
<div class="labels"><label for="reply">Su e-mail:</label><input class="inputfbck" type="email" name="Responder" maxlength="70" id="reply" autocomplete="email"></div>
<p>Todos los campos son opcionales. Ingrese su dirección de correo electrónico si desea una respuesta del autor de esta aplicación.</p>
<p><input type="checkbox" id="adduserdata"><label for="adduserdata">Enviar coeficientes</label></p>
<input type="hidden" name="datos" value="" id="userdata">
</div>
<div id="formright">
<label for="comments">Por favor, ingrese sus comentarios o sugerencias:</label><br>
<textarea name="Comentarios" rows="7" cols="40" id="comments"></textarea>
<p><label for="how">¿Cómo encontró mi página?</label><br>
<select name="Como" title="¿Cómo encontró mi página?" id="how">
<optgroup label="Seleccione respuesta">
<option value="Por un buscador" selected>Por un buscador</option>
<option value="Por un amigo">Por un amigo</option>
<option value="Por un enlace">Por un enlace</option>
<option value="De Wikipedia">De Wikipedia u otra referencia</option>
<option value="Otros">Otros</option>
</optgroup>
</select></p>
<fieldset><legend>¿Son instructivos los programas?</legend>
<input type="radio" name="Instructivo" value="Si" id="insyes"><label for="insyes">Sí</label>
<input type="radio" name="Instructivo" value="No" id="insno"><label for="insno">No</label>
</fieldset>
<fieldset><legend>¿Son interesantes los programas?</legend>
<input type="radio" name="Interesante" value="Si" id="intyes"><label for="intyes">Sí</label>
<input type="radio" name="Interesante" value="No" id="intno"><label for="intno">No</label>
</fieldset>
<p><button type="submit" disabled="disabled" id="formsend" title="Enviar el formulario">Enviar el<br>comentario</button>
<button type="reset">Entrar<br>otra vez</button>
<button type="button" id="formcancel" title="No enviar el formulario">Cancelar</button></p>
</div>
<div class="lf"></div>
</form>
</aside>
<aside id="sending">
<p>Enviando comentario...</p>
</aside>
<aside id="sentOK">
<p>Comentario enviado correctamente.</p>
<div class="center"><button type="button" id="btnSentOK">Volver</button></div>
</aside>
<aside id="notSent">
<p>No se pudo enviar el comentario.</p>
<div class="center"><button type="button" id="btnNotSent">Volver</button></div>
</aside>
<script type="text/wasmb64" id="wasmb64">
</script>
<script type="text/js-worker" id="worker">
<!--
//-->
</script>
<script>
<!--
//-->
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"browserRequirements": "Requires HTML5. Requires Javascript.",
"name": "Resolución de ecuaciones cuadráticas en dos variables enteras",
"description": "Applicación Javascript que halla soluciones a ecuaciones cuadráticas enteras en dos variables.",
"image": ["https://www.alpertron.com.ar/cuad.png"],
"datePublished": "2024-11-04",
"dateModified": "2024-11-04",
"operatingSystem": "Any",
"applicationCategory": "EducationalApplication",
"author": {
"@type": "Person",
"name": "Dario Alpern"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.4",
"ratingCount": "89"
},
"inLanguage": "es",
"license": "https://www.gnu.org/licenses/gpl-3.0.en.html",
"isAccessibleForFree": true,
"offers": {
"@type": "Offer",
"availability": "https://schema.org/OnlineOnly",
"price": "0",
"priceCurrency": "USD"
}
}
</script>
</body>
</html>