el ejercicio es el siguiente:
Se dice que un número entero n es raro cuando se verifica que para todo número m, menor que n, si ambos números son primos entre sí, ocurre necesariamente que m es un número primo. Por su parte, se dice que dos números son primos entre sí cuando el máximo común divisor de ambos números es 1.
Elaborar el diagrama modular y realizar un programa c++ que muestre por pantalla todos los números raros existentes entre 3 y un valor introducido por el usuario (ambos inclusive).
Nota: el algoritmo más eficiente para calcular el máximo común divisor sigue siendo el algoritmo de Euclides
mi código es el siguiente
Código:
#include<iostream> using namespace std; bool mcd (int, int);//funcion para calcular divisores comunes devuelve true o false void main(){ bool primos; int n; //numero introucido por el usuario cout<<"introduce el numero"<<endl; cin>>n; for(int m=3;m<n ;m++){ // realiza la operacion para todos los numeros entre 3 y m<n primos=mcd(int n,int m); if (primos)//si se devuelve true imprime son primos cout << n << " y " << m << " son primos entre si\n"; else // si devuelve false no son primos cout << n << " y " << m << " no son primos entre si\n"; } } bool mcd (int n, int m){ bool primos; for (int i = 2; i <= n; i++) if (n % i == 0 && m % i == 0) //comprueba si tienen un divisor comun primos = false; return primos; }