Matlab - Calcule la factorización prima para cada número n, luego represente los factores primos

 
Vista:
sin imagen de perfil

Calcule la factorización prima para cada número n, luego represente los factores primos

Publicado por Matt (7 intervenciones) el 28/10/2018 22:46:39
Ayuda con este problema. Gracias

Considere el siguiente sistema de números. Calcule la factorización prima para cada número n, luego represente los factores primos en un vector así:

13 11 7 5 3 2
---------------
2: 1
3: 1 0
4: 2
5: 1 0 0
6: 1 1
12: 1 2
14: 1 0 0 1
18: 2 1
26: 1 0 0 0 0 1
60: 1 1 2


Cada "lugar" en el sistema numérico representa un número primo. Dado n, devuelve el vector p.

Como se muestra arriba, si n = 26, entonces p = [1 0 0 0 0 1].

La entrada n es siempre un número entero mayor que 1. Suprima los ceros iniciales. La longitud del vector está determinada por el factor primo más grande.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Calcule la factorización prima para cada número n, luego represente los factores primos

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 29/10/2018 17:26:16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
clear all
% a=1:15;
% b=isprime(a);
% factores=a(b);
%n=26
factores=[13 11 7 5 3 2];
number=[2 3 4 5 6 12 14 18 26 60];
for m=1:length(number)
     n=number(m)
k=1;
 for i=factores
     s=0;
     for j=factor(n)
         if i==j
             s=s+1;
         end
     end
     p(k)=s;
     k=k+1;
 end
 Pos=find(p~=0);
 p=p(Pos:end)
end


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
>> factores_prima
 
n =
 
     2
 
 
p =
 
     1
 
 
n =
 
     3
 
 
p =
 
     1     0
 
 
n =
 
     4
 
 
p =
 
     2
 
 
n =
 
     5
 
 
p =
 
     1     0     0
 
 
n =
 
     6
 
 
p =
 
     1     1
 
 
n =
 
    12
 
 
p =
 
     1     2
 
 
n =
 
    14
 
 
p =
 
     1     0     0     1
 
 
n =
 
    18
 
 
p =
 
     2     1
 
 
n =
 
    26
 
 
p =
 
     1     0     0     0     0     1
 
 
n =
 
    60
 
 
p =
 
     1     1     2


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Calcule la factorización prima para cada número n, luego represente los factores primos

Publicado por Matt (7 intervenciones) el 30/10/2018 00:42:14
Gracias. Y si el usuario quiere ingresar un numero cualquiera y descomponerlo en factores primos como aparece allí, que es necesario hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Calcule la factorización prima para cada número n, luego represente los factores primos

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 30/10/2018 06:35:12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
clear all
n=23580480
factorn=factor(n)
 min=min(factorn);
 max=max(factorn);
 b=min:max;
 a=isprime(b);
factores=b(a)
k=1;
 for i=factores
     s=0;
     for j=factor(n)
         if i==j
             s=s+1;
         end
     end
     p(k)=s;
     k=k+1;
 end
 p


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>> factores_prima1
 
n =
 
    23580480
 
 
factorn =
 
     2     2     2     2     2     2     3     5     7    11    11    29
 
 
factores =
 
     2     3     5     7    11    13    17    19    23    29
 
 
p =
 
     6     1     1     1     2     0     0     0     0     1


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar