Você está na página 1de 8

TAREA 4

1 Escriba una función conteo(n) que entregue la cantidad de divisores enteros positivos
que tiene un número entero dado n. Escriba un programa de prueba que use la función
escrita para encontrar cual número entre 1 y 100 tiene más divisores enteros.

FUNSION CONTEO SCRIP EN MATLAB

function [ m ] = funcion_conteo( n ) clc, clear


m=0; a=0;
for i=1:n for i=1:100
if mod(n,i)==0 m=funsion_conteo(i);
m=m+1; if m<=a
end m=a
end disp(i)
end end
end

2 Escriba una función primo(n) para determinar si un número n dado es primo. Escriba un
programa de prueba que mediante la función escrita, encuentre los números primos
existentes entre 1 y n, siendo n un dato.

FUNSION PRIMO
function[p]=funcion_primo(n)
j=0; %ponemos un acumulador o contador de divisores

for i=1:n
if mod(n,i)==0 %condiciones; mod es para reciduos de division
j=j+1; %se actualiza el contador o numero totales de divisores
end
end

if j==2 %numero de divisores que j acumula


p=1; %el numero es primo
else
p=0;
end

end

SCRIP EN MATLAB
clear,clc;
n=input('ingrese el numero superior: ');
for i=1:n
if funcion_primo(i)==1
j=j+1;
disp(i)
end
end
fprintf('hay %d numeros primos \n',j)
3 Escriba una función primo(n) para determinar si un número n dado es primo. Escriba un
programa de prueba que use la función primo y encuentre dos números enteros aleatorios
menores que 100 tales que su suma sea también un número primo.

FUNSION PRIMO

EJERCICIO 2

SCRIP EN MATLAB
clc,clear;
a=0; %valores de prueba
b=0;
i=1 ; %contador
while funcion_primo(a+b)==0
fprintf('intento numero %d \n',i)
a=randi(100) %genero el primer numero aleatorio
b=randi(100) %genero el segundo numero aleatorio
i=i+1;
end
fprintf('los numeros enteros menores a 100 cuya suma es primo son %d y %d \n',a,b')

4 Escriba una función divisores(n) que entregue un vector conteniendo todos los divisores
enteros positivos que tiene un número entero dado n. Escriba un programa de prueba que
use la función escrita para encontrar para cada número entero del 20 al 30, sus divisores
enteros
FUNSION DIVISORES SCRIP EN MATLAB
function [ a ] = funcion_divisores( n )
c=0;
for i=1:n clear,clc;
if mod(n,i)==0 for i=20:30
v(i-c)=i; a(i)=funcion_divisores(i);
else fprintf('los divisores de %d son',i)
c=c+1; disp(a)
end end
end

end

5 Escriba una función mayor(x) que reciba un vector x y devuelva el mayor valor. Escriba
un programa de prueba que genere y almacene en un vector n números aleatorios entre 1
y 100. Use la función escrita y encuentre y muestre el mayor valor generado.
FUNSION MAYOR SCRIP EN MATLAB
function [ y ] = mayor( x ) clc,clear
n=length(x);
m=0; n=-1; %Indica valores negativos
while n<1
for i=1:n n=input('Ingrese el límite de datos: ');
if m<x(i); a=1;
m=x(i); b=100;
end r=floor(rand(n,1)*(b+1-a)+a)
end
y=m;
end g=mayor(r)

fprintf('El %d es el número mayor entre la


fila de 5 numeros aleatorios \n',g)

6 Escriba una función perfecto(n) que determine si un número entero dado n es un


número perfecto. Un número perfecto debe ser igual a la suma de todos sus divisores
enteros menores que el valor del número.
Ejemplo: 28 = 1 + 2 + 4 + 7 + 14
Escriba un programa de prueba que use la función escrita y encuentre los números
perfectos entre 1 y 1000

FUNSION PERFECTO SCRIP EN MATLAB


function [y] = funcion_perfecto( n ) funcion_perfecto(28)
c=0;
for i=1:(n-1)
if mod(n,i)==0 ans =
c=c+i;
end 1
end
if n==c
y=1;%ES PERFECTO
else
y=0;%NO ES PERFECTO
end

7 Escriba una función suma(n) que entregue la suma de las cifras de un número dado n.
Con esta función escriba un programa que genere 10 números aleatorios entre 1 y 100 y
encuentre cual de ellos tiene la mayor suma de sus cifras.

FUNSION SUMA
function [ y ] = funcion_suma( x )
i=0;
y=0;
while x~=0
y=y+mod(x,10);
x=(x-mod(x,10))/10;
i=i+1;
end
end
SCRIP EN MATLAB

clear, clc;
n=input('ingrese la cantidad de aleatorios a generar n=');
a=round(100*rand(1,n)+1)
s=a(1:n)

8 Escriba una función cuad(n) que determine si el cuadrado de un número natural n dado,
es igual a la suma de los primeros n números impares.
Ej. 62 = 1+3+5+7+9+11
Escriba un programa de prueba que ingrese un dato desde el teclado, use la función y
muestre el resultado en la pantalla.

FUNSION CUADRADO SCRIP EN MATLAB

function [cuad] = funsion_cuad( n ) clear,clc;


suma=0; n=input('ingrese el numero superior: ');
i=0; for i=1:n
while i<n if funcion_primo(i)==1
nimpar = 2*i + 1; j=j+1;
suma=suma+nimpar; disp(i)
i=i+1; end
disp(nimpar); end
end fprintf('hay %d numeros primos \n',j)

disp('la suma es: ');


disp(suma);

if suma==n^2
disp('si cumple la condicion');
else

end

end

11 Escriba una función sim(x) que reciba un entero y determine si es simétrico, es decir si
los dígitos opuestos alrededor del centro son iguales. Escriba un programa de prueba que
genere números aleatorios entre 1 y 10000 hasta obtener un número que sea simétrico
FUNSION SIM SCRIP EN MATLAB

function [ y ] = funsion_sim( n ) clc,clear


a=1; n=fix(rand*10000)+1
cont=0; y=sim(n)
cont1=0;
x=n;
while (n>=1)
punto=mod(n,10);
vect(a)=punto;
n=fix(n/10);
a=a+1;
end
a=a-1;
b=a;
for i=1:a
k(i)=vect(a);
a=a-1;
end
a=b;
if mod(a,2)==0
mitad=a/2;
for i=1:mitad
if k(i)==k(a)
a=a-1;
cont=cont+1;
end
end
if mitad==cont
y=1;
fprintf('es simetrico el
numero %d',x);
else
y=0;
fprintf('no es simetrico el
numero %d',x);
end
else
mitad=fix(a/2);
for i=1:mitad
if k(i)==k(a)
a=a-1;
cont1=cont1+1;
end
end
if mitad==cont1
y=1
fprintf('es simetrico el
numero %d',x);
else
y=0
fprintf('no es simetrico el
numero %d',x);
end
end

15 Escriba una función fact(n) que reciba un numero entero n y devuelva su factorial.
Escriba un programa de prueba que genere un número aleatorio entero menor que 8, use
la función y muestre la suma de los factoriales de los primeros k números naturales
FUNSION FACT SCRIP EN MATLAB

function [f] = funcion_fact(n) j=fix(8*rand)


f=1; a=funcion_fact(j)
for i=1:n j1=fix(8*rand)
f=f*i; b=funcion_fact(j1)
end j2=fix(8*rand)
end c=funcion_fact(j2)
j3=fix(8*rand)
d=funcion_fact(j3)
j4=fix(8*rand)
e=funcion_fact(j4)
j5=fix(8*rand)
f=funcion_fact(j5)
j6=fix(8*rand)
g=funcion_fact(j6)
j7=fix(8*rand)
h=funcion_fact(j7)
sumafact=a+b+c+d+e+f+g+h

16 Escriba una función suma(n) que reciba un numero entero n y devuelva la suma de sus
dígitos. Escriba un programa de prueba que genere números aleatorio entre 1 y 100 hasta
que la suma de los dígitos de alguno de ellos sea múltiplo de 7

FUNSION SUMA SCRIP EN MATLAB

function [ y ] = suma( n ) clear,clc;


y=0; for a=1:10
for i=1:n; for i=fix(100*rand)+1;
y=y+i; s=suma(i);
end if s*(mod(s,7))==0;
end y=s;
fprintf('El numero aleatorio
es:%d; la suma de sus digitos es:%d, y
es multiplo de 7\n',i,s)
end
end
end

17 Escriba una función sumad(n) que reciba un número entero n y devuelva la suma de sus
divisores. Escriba un programa de prueba que ingrese un dato desde el teclado, use la
función y muestre el resultado en la pantalla

FUNSION SUMAD SCRIP EN MATLAB

function [ sum ] = funcion_sumad(n) clear,clc;


sum=0; n=input('ingrese numero')
for i=1:n sum=suma(n)
if mod(n,i)==0
a(i)=i;
sum=sum+a(i);
end
end
end
18 Escriba una función mcd(a, b) que reciba dos números enteros a y b, y devuelva
el máximo común divisor entre ellos. Escriba un programa de prueba que genere
dos números aleatorios entre 1 y 100, use la función y muestre el resultado en la
pantalla

FUNSION MCD2 SCRIP EN MATLAB

function [ m ] = funcion_mcd2( a,b ) clear,clc;


m=gcd(a,b); a=input('ingrese el numero mayor entero: ');
end b=input('ingrese el numero menor entero: ');
m=funcion_mcd2(a,b);
disp('maximo comun divisor');
disp(m)

19 Escriba una función primos(v) que reciba un vector v y entregue otro vector
conteniendo los elementos que son números primos.

function [ x ] = funcion_primo2( v )
div=0;
c=0;
n=lenght(v)
for i=1:n
a=v(i)
for j=1:a
if mod(a,j)==a
div=div+1
end
end
if div==2
x(i-c)=a
else
c=c+1
end
end

20 Escriba un a función rango(v, a, b) que reciba un vector v, y determine cuantos


elementos están enend
el rango [a, b]

function [ y ] = funcion_rango( v,a,b )


n=length(v);
y=[];
for i=1:n
[r,p]=min(v(i:n));
t= v(i);
v(i)=v(p+i-1);
v(p+i-1)=t;
end
for i=1:n
if mod(v(i),1)==0
y=[y,v(i)];
y=i-2;
end
end
end

Você também pode gostar