Algoritimos

19
Algoritimos Usando os exemplos do capitulo 1 onde falamos sobre Métodos de fatoração, vamos aqui colocar algoritimos feitos na linguagem de programação JAVA e mostrar como cada um deles se comporta numa máquina de arquitetura comum. O Primeiro exemplo é a simples verificação de divisibilidade:

Transcript of Algoritimos

Page 1: Algoritimos

Algoritimos

Usando os exemplos do capitulo 1 onde falamos sobre Métodos de fatoração, vamos aqui colocar algoritimos feitos na linguagem de programação JAVA e mostrar como cada um deles se comporta numa máquina de arquitetura comum.

O Primeiro exemplo é a simples verificação de divisibilidade:

Imagem 1 – Divisibilidade em JAVA

Page 2: Algoritimos

Imagem 2 – Colocanco o valor do dividendo 10

Imagem 3 – Colocando o valor do divisor 5

Imagem 4 – Mostrando a divisibilidade entre o dividendo 10 e o divisor 5.

Imagem 5 - Colocanco o valor do dividendo 15

Imagem 6 – Colocando o valor do divisor 7

Page 3: Algoritimos

Imagem 7 – Mostrando a divisibilidade entre o dividendo 15 e o divisor 7.

Como mostrado nos exemplos acima, o algoritimo faz o calculo de divisibilidade entre dividendo e divisor. Nos exemplos foram testados a divisibilidade entre os numeros 10 e 5, o que ocasionou numa divisibilidade positiva, e entre 15 e 7, uma divisibilidade negativa.

No exemplo a seguir demonstraremos como verificamos se um numero é primo ou não.

Imagem 8 – Primalidade em JAVA

Page 4: Algoritimos

Imagem 9 – Verificando a primalidade do número 8

Imagem 10 – Primalidade do número 8.

Imagem 11 – Verificando a primalidade do número 23

Imagem 12 – Primalidade do número 23

No exemplo acima testamos a primalidade verificando todos os numeros abaixo do inserido que são divisiveis pro ele. Ao excluirmos o numero 1 e ele mesmo do vetor sabemos se ele é ou não primo verificando se o vetor está vazio. Pois os numeros primos não possuem outros divisores além do proprio numero e 1.

No caso testamos a primalidade dos numeros 8 e 23, o primeiro sendo um numero não-primo e o segundo sendo primo.

A seguir temos um algoritmo que fatora os números inseridos:

Page 5: Algoritimos

Imagem 13 – Fatoração em JAVA parte 1

Page 6: Algoritimos

Imagem 14 – Fatoração em JAVA parte 2

Page 7: Algoritimos

Imagem 15 – Fatoração em JAVA parte 3

Page 8: Algoritimos

Imagem 16 – Inserindo o número 23

Imagem 17 – Mostrando que o número 23 é Primo e não haverá fatoração

Imagem 18 – Inserindo o número 20

Imagem 19 – Mostrando a fatoração do número 20

Imagem 20 – Inserindo o número 200.000

Page 9: Algoritimos

Imagem 21 – Mostrando a fatoração do numero 200.000

Vale salientar que no algoritmo de fatoração fizemos uma verificação com números grandes e barramos a inserção de números maiores que 200 mil, pois o processamento do computador demora mais de acordo com o tamanho do número. Com o número 200 mil a máquina demorou em média 15 segundos a processar a fatoração.

Abaixo está um algoritimo que fatora os numeros de acordo com o método de Fermat.

Imagem 22 – Método de fatoração por Fermat em JAVA

Page 10: Algoritimos

Imagem 23 – Inserindo o número 369852

Imagem 24 – Mostrando a fatoração por Fermat do número 369852

Imagem 25 – Inserindo o número 345

Imagem 26 – Mostrando a fatoração por Fermat do número 345

O exemplo acima mostra a fatoração de números pleo método de Fermat, que não fatora pelo produto de números primos, mas pelo produto de dois outros números.

Abaixo temos um exemplo de como a criptografia RSA funciona:

Page 11: Algoritimos

Imagem 27 – O algoritimo RSA em JAVA parte 1

Page 12: Algoritimos

Imagem 28 – O algoritmo RSA em JAVA parte 2

Page 13: Algoritimos

Imagem 29 – O algoritmo RSA em JAVA parte 3

Page 14: Algoritimos

Imagem 30 – O algoritimo RSA em JAVA parte 4

Page 15: Algoritimos

Imagem 31 – O algoritmo RSA em JAVA parte 5

Imagem 32 – Inserindo a frase “O algoritmo de Shor”

Imagem 33 – Inserindo valor de p = 11

Page 16: Algoritimos

Imagem 34 – Inserindo o valor de q = 17

Imagem 35 – Mostrando o resultado da criptografia e descriptografia em RSA para a frase “O algoritimo de Shor”

Imagem 36 – Inserindo a frase “RSA e Peter Shor”

Page 17: Algoritimos

Imagem 37 – Inserindo o valor de p = 5

Imagem 38 – Inserindo o valor de q = 13

Imagem 39 – Mostrando o resultado da criptografia e descriptografia em RSA para a frase “RSA e Peter Shor”