Acciones

Diferencia entre revisiones de «Ejercicios 3: Aritmética»

De Software Libre para la Enseñanza y el Aprendizaje de las Matemáticas (2010-11)

(Ejercicio 1.6.)
(Ejercicio 5.2.)
 
(No se muestran 10 ediciones intermedias de 4 usuarios)
Línea 32: Línea 32:
  
 
'''Solución'''
 
'''Solución'''
 +
gcd(a,b);
  
 
=== Ejercicio 1.6. ===
 
=== Ejercicio 1.6. ===
Línea 45: Línea 46:
  
 
'''Solución'''
 
'''Solución'''
 +
n: 2008!;
  
 
=== Ejercicio 2.2. ===
 
=== Ejercicio 2.2. ===
Línea 50: Línea 52:
  
 
'''Solución'''
 
'''Solución'''
 +
(%i2)bfloat(n);
 +
(%o2) 8.64364185767107b5761
 +
 +
Por tanto tiene 5762 cifras
  
 
=== Ejercicio 2.3. ===
 
=== Ejercicio 2.3. ===
Línea 55: Línea 61:
  
 
'''Solución'''
 
'''Solución'''
 +
ifactors(n);
  
 
=== Ejercicio 2.4. ===
 
=== Ejercicio 2.4. ===
Línea 60: Línea 67:
  
 
'''Solución'''
 
'''Solución'''
 +
 +
Puesto que al descomponer en factores primos el exponente de 2 es 2001 y el de 5 es 500, n tendrá 500 ceros.
  
 
== Ejercicio 3 ==
 
== Ejercicio 3 ==
Línea 67: Línea 76:
  
 
'''Solución'''
 
'''Solución'''
 +
(%i1)sol3:2$
 +
(%i2)for k from 2 thru 2008 do (sol3:next_prime(sol3))$
 +
(%i3)sol3;
 +
 +
Y devuelve 17467
  
 
== Ejercicio 4 ==
 
== Ejercicio 4 ==
Línea 74: Línea 88:
  
 
'''Solución'''
 
'''Solución'''
 +
for i from 1 step 1 thru 100000 do (print(i,”=”,factor(i)));
 +
 +
 +
'''Solución 2'''
 +
(%i6) sol4:0$
 +
(%i7) for i from 1 step 1 thru 100000 do
 +
      (if primep(i) then
 +
      sol4:sol4+1);
 +
(%o7) done
 +
(%i8) sol4;
 +
(%o8) 9592
  
 
== Ejercicio 5 ==
 
== Ejercicio 5 ==
Línea 81: Línea 106:
  
 
'''Solución'''
 
'''Solución'''
 +
(%i1)sol5:2$
 +
for k from 2 thru 9592 do (sol5:next_prime(sol5))$
 +
sol5;
 +
 +
Y devuelve 99991
  
 
=== Ejercicio 5.2. ===
 
=== Ejercicio 5.2. ===
Línea 86: Línea 116:
  
 
'''Solución'''
 
'''Solución'''
 +
prev_prime(100000);
 +
 +
 +
'''Solución 2'''
 +
(%i14) is(sol5=prev_prime(100000));
 +
(%o14) true

Revisión actual del 10:21 30 abr 2011

Ejercicio 1

Ejercicio 1.1.

Asignarle a la variable a el valor 2460 y a la b el 3030.

Solución a:2460$ b: 3030$

Ejercicio 1.2.

Calcular el conjunto D1 de los divisores positivos de a.

Solución divisors(a);

Ejercicio 1.3.

Calcular el conjunto D2 de los divisores positivos de b.

Solución divisors(b);

Ejercicio 1.4.

Calcular, usando la función intersection, el conjunto D de los divisores comunes de a y b.

Solución S_1: divisors(a); S_2:divisors(b); intersection(S_1,S_2);

Ejercicio 1.5.

Calcular el máximo común divisor de a y b.

Solución

gcd(a,b);

Ejercicio 1.6.

Calcular el mínimo común múltiplo de a y b.

Solución lcm(a,b);

Ejercicio 2

Ejercicio 2.1.

Asignarle a la variable n el valor 2008!

Solución n: 2008!;

Ejercicio 2.2.

¿Cuántas cifras tiene n en base 10?

Solución

(%i2)bfloat(n);
(%o2) 8.64364185767107b5761

Por tanto tiene 5762 cifras

Ejercicio 2.3.

Calcular la descomposición de n en productos de factores primos.

Solución ifactors(n);

Ejercicio 2.4.

¿Con cuántos ceros termina n?

Solución

Puesto que al descomponer en factores primos el exponente de 2 es 2001 y el de 5 es 500, n tendrá 500 ceros.

Ejercicio 3

Ejercicio 3.1.

Escribir un programa para asignarle a la variable sol3 el término que ocupa la posición 2008 en la sucesión de números primos ordenados de manera creciente.

Solución

(%i1)sol3:2$
(%i2)for k from 2 thru 2008 do (sol3:next_prime(sol3))$
(%i3)sol3;

Y devuelve 17467

Ejercicio 4

Ejercicio 4.1

Escribir un programa para asignarle a la variable sol4 el número de primos inferiores a 100000.

Solución for i from 1 step 1 thru 100000 do (print(i,”=”,factor(i)));


Solución 2

(%i6) sol4:0$
(%i7) for i from 1 step 1 thru 100000 do
      (if primep(i) then
      sol4:sol4+1);
(%o7) done
(%i8) sol4;
(%o8) 9592

Ejercicio 5

Ejercicio 5.1.

Escribir un programa para asignarle a la variable sol5 el término que ocupa la posición 9592 en la sucesión de números primos ordenados de manera creciente.

Solución

(%i1)sol5:2$
for k from 2 thru 9592 do (sol5:next_prime(sol5))$
sol5;

Y devuelve 99991

Ejercicio 5.2.

Comprobar si sol5 es el mayor primo menor que 100000.

Solución prev_prime(100000);


Solución 2

(%i14) is(sol5=prev_prime(100000));
(%o14) true