Dev - C++ - vectores - programa que permita descomponer en números primos un número

 
Vista:
sin imagen de perfil
Val: 45
Ha disminuido su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

vectores - programa que permita descomponer en números primos un número

Publicado por ana luci (24 intervenciones) el 12/02/2020 23:24:45
Escriba un programa que permita descomponer en números primos un número indeterminado de enteros positivos menores que un valor máximo M. El programa terminará cuando se pida la descomposición del número cero. Para resolverlo, incluya dos funciones:
1. Una función que calcula un vector con todos los números primos hasta el número M.
2. Una función que calcula la descomposición de un número entero haciendo uso de un vector de primos precalculado
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 Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

vectores - programa que permita descomponer en números primos un número

Publicado por Alfil (1444 intervenciones) el 13/02/2020 21:38:38
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
#include <iostream>
#include <vector>
 
using namespace std;
 
void primos(vector<int>& v, int max);
void bucle(const vector<int> v);
 
int main()
{
    vector<int> v;
    int max;
 
    cout << "\nNumero M: "; cin >> max;
 
    primos(v, max);
 
    cout << "\nLos numeros primos son: ";
    for(int i = 0; i < v.size(); i++)
        cout << v[i] << " ";
 
    bucle(v);
 
    cout << endl;
 
    return 0;
}
 
void primos(vector<int>& v, int max)
{
    int i = 1;
    while( i <= max ) {
        int k = 1;
        int a = 0;
        while(k <= i) {
            if(i % k == 0) a++;
 
            k++;
        }
        if(a == 2) v.push_back(i);
 
        i++;
    }
}
 
void bucle(const vector<int> v)
{
    int numero;
    cout << "\n\nNumero (0 para terminar): "; cin >> numero;
 
    do{
 
        cout << "\nLos numeros primos de " << numero << " son: ";
 
        int i = 0;
        while(numero >= v[i] && i < v.size()) {
            cout << v[i] << " ";
            i++;
        }
 
        cout << "\n\nNumero (0 para terminar): "; cin >> numero;
 
    } while(numero != 0);
}
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 Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

vectores - programa que permita descomponer en números primos un número

Publicado por Rodrigo (539 intervenciones) el 14/02/2020 02:43:43
Para obtener los divisores, si es que el numero es menor que M, divide sucesivamente el numero por los numeros que estan en el arreglo de primos. Avanzando 1 cada vez.
Preguntas si el primo que visitas divide al numero, si es asi, imprimes el numero primo y divides al numero por el.
Cuando el numero primo no divida mas al numero, avanzas al siguiente primo.
Asi sucesivamente hasta que el numero haya sido dividido tanto que llegue a 1.
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