tengo que realizar un ejercicio en c++ y me trae de cabeza
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;
}