Matemáticas II

  • MCM Y MCD
  • Criba de Eratostenes
  • Euler totient
  • Exponenciación binaria

Máximo Común Divisor

  1. Se divide el número mayor entre el menor.
  2. Si la división es exacta, el divisor es el m.c.d.
  3. Si La división no es exacta, dividimos el divisor entre el resto obtenido y se continúa de esta forma hasta obtener una división exacta, siendo el último divisor el m.c.d.

Máximo Común Divisor

MCD(72,16) = 8

Código disponible en Github

Máximo Común Divisor de 3 números

MCD(A,B,C) = MCD(MCD(A,B), C)

Mínimo Común Multiplo

Código disponible en Github

Numeros primos: Criba de Eratostenes

Criba de Eratostenes

                                
static ArrayList<Integer> primes = new ArrayList<Integer>();
static boolean sieve[] = new boolean[10000005];
                                
                            

Criba de Eratostenes

                                
static ArrayList<Integer> primes = new ArrayList<Integer>();
static boolean sieve[] = new boolean[10000005];
                               
static void calculatePrimes() {
  sieve[0] = sieve[1] = true;
  int i;
}
                                
                            

Criba de Eratostenes

                                
static ArrayList<Integer> primes = new ArrayList<Integer>();
static boolean sieve[] = new boolean[10000005];
                               
static void calculatePrimes() {
  sieve[0] = sieve[1] = true;
  int i;
  for (i = 2; i * i ≤ 10000005; ++i) {
    if (!sieve[i]) {
      primes.add(i);
      for (int j = i * i; j ≤ 10000005; j += i)
        sieve[j] = true;
    }
  }
}
                                
                            

Criba de Eratostenes

                                
static ArrayList<Integer> primes = new ArrayList<Integer>();
static boolean sieve[] = new boolean[10000005];
                               
static void calculatePrimes() {
  sieve[0] = sieve[1] = true;
  int i;
  for (i = 2; i * i ≤ 10000005; ++i) {
    if (!sieve[i]) {
      primes.add(i);
      for (int j = i * i; j ≤ 10000005; j += i)
        sieve[j] = true;
    }
  }
  for(; i ≤ 10000005; i++){
      if (!sieve[i]) {
      primes.add(i);
    }
  }
}
                                
                            

Criba de Eratostenes

Código disponible en Github

Euler Totient

totient(n) es la cantidad de números menores o iguales a n que son coprimos con n.

                        
static void totient(int n, int resultados[]){
  boolean aux[]=new boolean[n];
  for(int i = 0; i < n; i++) {
	resultados[i]=i;
  }
  for(int i = 2; i < n; i++){
    if(!aux[i]) {
	  for(int j = i; j < n ; j+=i){
	    aux[j]=true;
	    resultados[j]= resultados[j]-(resultados[j]/i) ;
      }
      aux[i] = false;
    }
  }
}
                        
                    

Exponenciación binaria

Exponenciación binaria

Código disponible en Github