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);