I need help with mcd or gcd

I need to place the prime numbers (used in Greatest common divisor)in a txt file.
I mean if a=42 and b=56 show in the file (2 and 7)

how can i do that?
Hi @lexie21,
What is your problem?
Calculation of gdc?,factors?,
primes?
or printing the results in a txt file?
and
what you have done so far?
(code)


regards!
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include<iostream>
#include<cstdlib>
#include <fstream>
using namespace std;
int mc_divisor(int a, int b){
    if (b == 0 && a == 0){
        cout <<"\n a y b no pueden ser simultaneamente cero"<<endl;}
    if(b == 0){
        return a;
}else{
    return mc_divisor(b,a % b);
};
};

int mcd(int a, int b){
    if(a > b){
        return mc_divisor(a,b);
}else{
    return mc_divisor(b,a);
};
};



int descomponer(int a){
int i=2;

    while ( a!=0){
        if (a%i== 0){
            cout <<i <<endl;
            a=a/i;
            }
        else i=i+1;
        }
        }

int desc(int b){
int c=2;

    while ( b!=0){
        if (b%c== 0){
            cout <<c <<endl;
            b=b/c;
            }
        else c=c+1;
        }
        }

int main(){

int a;
int b;
cout << "a? = ";
cin >> a;
cout << "b? = ";
cin >> b;
cout << "m.c.d = ";
cout << mcd(a,b) <<endl;

system("pause");
return EXIT_SUCCESS;
}


Then, I need to put the prime numbers in a file (txt) but i only can do it with 'a' or 'b'. And in need put both. I mean if a=36 and b=42. in the file will be like a =2*2*3*3 and b=2*3*7.
Last edited on
Hablas español?,
si es asi podemos escribir
en español mejor!

Segun lo que entendí,
de tu primer post (que difiere de
lo que publicaste después)fue algo
como esto que pondre a continuación
y, al finalizar escribir en un documento
de texto (txt) los factores primos del máximo
común divisor de esos dos números ;


Enter number 1: 36
Enter number 2: 42
36 gcd 42 = 6

Factors of 36 are: 1 2 3 4 6 9 12 18 36 
Factors of 42 are: 1 2 3 6 7 14 21 42 

Factors of 6 are: 1 2 3 6 
Prime factors of 6 are: 2 3


Enter number 1: 100
Enter number 2: 40
100 gcd 40 = 20

Factors of 100 are: 1 2 4 5 10 20 25 50 100 
Factors of 40 are: 1 2 4 5 8 10 20 40 

Factors of 20 are: 1 2 4 5 10 20 
Prime factors of 20 are: 4 5


Enter number 1: 100
Enter number 2: 25
100 gcd 25 = 25

Factors of 100 are: 1 2 4 5 10 20 25 50 100 
Factors of 25 are: 1 5 25 

Factors of 25 are: 1 5 25 
Prime factors of 25 are: 5 5


es algo asi?
Solo quiero saber si
capte la idea del ejercicio!

EDIT: Error: Aveces los factores del máximo común divisor no son primos
EDIT: Error: Sometimes the factors of the GCD of 2 numbers are not primes
Last edited on
Si, exactamente eso es lo que busco sólo que tendría:
1
2
3
4
5
6
7
Enter number 1:100
Enter numbre 2: 25
100 gdc 25=25

//Y estos serían los que se mostrarian en el txt.
Factors of 100 are:1 2 4 5 10 20 25 50 100 
Factors of 25 are: 1 5 25  


¿Entonces como iría el código? Sólo usando esas tres librerías como máximo.
Gracias por la ayuda.
Para cuándo es que necesitas
terminar esto?
Aquí ya es algo tarde y
ya me ire dormir,
mañana podría ponerte un
ejemplo;
Yo utilizo mi propia librería
para hacer pequeñas pruebas;
Y hacer un ejemplo sin esta
me va a llevar varios minutos;

Mi código es algo como esto:

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//gcd_primes.cpp
//##

#include <iostream>
#include "eye.h"


int main(){
	
	eye::Int num1,num2,r;

	while(true){
		std::cout<<"\nEnter number 1: ";
		int a;
		std::cin>>a;
		num1=a;
		std::cout<<"Enter number 2: ";
		int b;
		std::cin>>b;
		num2=b;
		

		r=num1.GCD(num2);
		std::cout<<num1<<" gcd "<<num2<<" = "<<r<<std::endl;

		std::cout<<'\n';

		std::cout<<"Factors of "<<num1<<" are: ";
		for(int i=1;i<=num1.getValue();i++){
			eye::Int n1(i);
			if(n1.isFactorOf(num1))
				std::cout<<n1<<' ';
		}//end for
		std::cout<<std::endl;

                std::cout<<"Factors of "<<num2<<" are: ";
                for(int i=1;i<=num2.getValue();i++){
                        eye::Int n2(i);
                        if(n2.isFactorOf(num2))
                                std::cout<<n2<<' ';
                }//end for
                std::cout<<'\n'<<std::endl;
		

			
		std::cout<<"Factors of "<<r<<" are: ";
		for(int i=1;i<=r.getValue();i++){
			eye::Int aux(i);
			if(aux.isFactorOf(r)){
				std::cout<<aux<<' ';
			}//end if
		}//end for


		int tmp1=0,tmp2;
		for(int i=1;i<=r.getValue();i++){
			eye::Int aux(i);
                        if(aux.isFactorOf(r)){
                                tmp2=i;
                                if(tmp1*tmp2!=r.getValue())
                                        tmp1=tmp2;
				else
					break;
                        }//end if
			if(i==r.getValue()){
				for(int j=1;j<=r.getValue();j++){
					eye::Int ax(j);
					if(ax.isFactorOf(r)){
						if(ax.getValue()*ax.getValue()==r.getValue()){
							tmp1=ax.getValue();
							tmp2=ax.getValue();
						break;
						}//end if
					}//end if
				}//end for
					
			}//end if			
		}//end for
		std::cout<<'\n';
		std::cout<<"Prime factors of "<<r<<" are: "<<tmp1<<' '<<tmp2<<std::endl;
		std::cout<<std::endl;
	 
	}//end while
	
	eye::Int na=25;
	std::cout<<na<<(na.isPrime()?" is prime.":" is not prime.")<<std::endl;	
}//end of main 
Se ve bien, solo que no lo puedo probar porque es de tu librería. Así solo faltaría enviar esa información de salida al txt.
Muy bien, oye
tienes cuenta de correo?
si haces click en
mi nombre de usuario,
veras mi dirección, mandame
un correo esta bien?
Topic archived. No new replies allowed.