Dev - C++ - FUNCIONES EC C++ Y PYTHON

 
Vista:

FUNCIONES EC C++ Y PYTHON

Publicado por deisy (2 intervenciones) el 29/06/2020 05:12:55
Necesito ayuda con este ejercicio de funciones

Diseñar un algoritmo en seudocódigo e implementarlo en C++ y Python, para que tenga al menos dos funciones para ingresar desde el teclado una secuencia de números enteros mayores que cero y para cada uno de ellos que se calcule y despliegue los números primos próximos (están más cerca) y equidistantes (igual distancia).

tengo esto, pero al corres tiene algunos errores, por ejemplo cuando ingreso el numero 1, me sale -1,1-3 y no 1,2 como se espera.

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
// PrimProxiEquidis
#include <math.h>
#include <iostream>
using namespace std;
// Prototipos de funciones:
int EsPrimo(int);
// Declaracion de funciones:
int main()
{
      int N, Distancia, Continua;
      while (1) {
        cout << "Ingresar un entero (salir < 1): ";
        cin >> N;
        if (N < 1) break;
       Continua = 1;
       Distancia = (N % 2 == 0 ? 1 : 2);
       cout << "Numeros primos proximos y equidistantes a: " << N << ": ";
       do {
           if (EsPrimo(N - Distancia)) {
               cout << (N - Distancia) << " ";
               Continua = 0;
           }
           if (EsPrimo(N)){
               cout << N << " ";
               Continua = 0;
           }
           if (EsPrimo(N + Distancia)) {
               cout << (N + Distancia);
               Continua = 0;
          }
          Distancia += 2;
      }
     while (Continua);
     cout << endl << endl;
  }
  return 0;
}
int EsPrimo(int X) {
// Descartar valores < 4:
if (X < 4) return 1;
// Descartar los pares > 3:
if (X % 2 == 0) return 0;
// Analizar los impares > 3:
int Divisor = 3, Raiz = ceil(sqrt(X));
while (Divisor <= Raiz && X % Divisor != 0)
   Divisor += 2;
return Divisor > Raiz;
}
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