Acciones

Ejercicios 3: Aritmética

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

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