Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/06/2012, 17:50
sergionc16
 
Fecha de Ingreso: junio-2012
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
primos entre si c++

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;
}