tengo este problema 2 numeros son primos relativos cuando el unico divisor comun es el 1 ejemplo:
divisores del (15): 1,3,5,15
divisores del (8): 1,2,4,8
divisor comun: es el 1 en ambos
ya tengo parte del codigo echo pero al final me tiene que decir si son primos relativos o no pero el resultado siempre me esta dando que si son primos relativos sin importar los números que yo le meta
ejemplo:
el 6 y el 27 ya no son relativos por que aparte de que los divide el 1 tambien los divide el 3 osea que ya el unico comun no es el 1 si no el 3 y solo tiene que ser comun el 1
les dejo el codigo en un txt para que me ayuden a analizar y a encontrar el problema
http://www.4shared.com/office/VE9EJ-a2/primos_rela...
Copyright © 2024 Q2A.ES - All rights reserved.
Answers & Comments
Verified answer
// codigo en DEV C++
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
int a,b,i,min,m=0; // m es el sumador que guardara la cantidad de factores comunes
cout<<" Ingrese dos numeros a evaluar "<<endl;
cin>>a>>b;
if (a>b) {
min=b;
} else {
min=a;
}
for (i=1;i<=min;i++) {
if ((a%i==0)&&(b%i==0))
m=m+1;
}
if (m==1) {
cout<<"Son primos relativos "<<endl<<endl;
} else {
cout<<"No son primos relativos"<<endl<<endl;
}
system("pause");
return 0;
}
jajaja oye estan dandole un quemon a tu escuela, tengo amigos en Ing. en computacion te voy a reportar con ellos jajaja Bueno amiga universitaria ya hablando en seriio, el programa no te lo puedo dar en C ya que en el IPN solo vemos C++,te voy a hacer una que hace lo que pides pero en c++, solo es para que te des una theory y lo hagas en c. #comprise<iostream.h> #comprise<conio.h> void considerable() { int numero,i; cout<<"Numero:"<<endl; cin>>numero; clrscr(); for(i=numero-a million;i>=a million;i--) if((ip.c.2)==0) { cout<<i<<endl; getch(); } else clrscr(); cout<<"son todos!"<<endl; getch(); } Este programa lo hice y me corrio en el borland 5.02 y te corre en cualquier version del borland si lo quieres pasar a lenguaje C ,cambia los Cout por printf ("%d" ,i) el cin>>numero; por scanf(%d, numero) o como se escriba , l. a. libreria <iostream.h> por <stdio.h> y has los ajustes necesarios amiga, suerte. **************************************... ¿con arreglos y funciones? Nececitarias crear l. a. funcion que t calcule los numeros primos menor que N, que es casi los mismo que te puse ariva, solo creas l. a. funcion calcular numeros_primos(); te quedaria algo asi: int calcular numeros_primos( int); { for(i=numero-a million;i>=a million;i--) if((ip.c.2)==0) { return i; } a esta funcion l. a. mandas a llamar y le pasas el argumento "numero" y te va a regresar los numeros primos.
como lo solucionarias con pseint ?
Ok, resulta que solo estas comparando si se repite algun numero, pero no estas revisando si el que se repite es el numero 1, te recomiendo que agregue una variable mas, y la agregues dentro del codigo que subiste asi:
// halla la cantidad de divisores en cada vector que se repiten
int i=0;
int j=0;
int Repe = 0; //ESTE CODIGO ES NUEVO
while(vect1[i]!=0)
{
while(vect2[j]!=0)
{
if(vect1[i]==vect2[j])
{
cont=cont+1;
}
if(vect1[i]==vect2[j] && vect1[i] == 1) //ESTE CODIGO ES NUEVO
{
Repe=Repe+1; //ESTE CODIGO ES NUEVO
}
j=j+1;
}
i=i+1;
}
Ademas agregale algo mas a la validacion del final
if(cont==1 && Repe == 1)//ESTO SE LE AGREGO ADICIONAL
{
cout<<"primos relativos"<<endl;
}
else
{
cout<<"no son primos relativos"<<endl;
}
Te podria haber colaborado con un codigo mejor, pero veo que tienes la intencion de aprender mucho mas. si tu codigo estaba correcto, esto arreglara lo de la validacion de los numeros primos relativos. espero que te sirva de ayuda, cualquier duda me puedes enviar un MP.