CIC 111 Análise e Projeto de Algoritmos II

Documentos relacionados
ALGORITMO DE EUCLIDES

Matemática Discreta. Introdução à Teoria de Números - Exercícios 1 o ano /2011

é uma proposição verdadeira. tal que: 2 n N k, Φ(n) = Φ(n + 1) é uma proposição verdadeira. com n N k, tal que:

MA14 - Aritmética Unidade 6 - Parte 3 Resumo

Elementos de Matemática Finita

MA14 - Aritmética Lista 1. Unidades 1 e 2

XIX Semana Olímpica de Matemática. Nível 3. Polinômios Ciclotômicos e Congruência Módulo p. Samuel Feitosa

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Matemática para Ciência de Computadores

Universidade do Minho

(Ciência de Computadores) 2005/ Diga quais dos conjuntos seguintes satisfazem o Princípio de Boa Ordenação

Tópicos de Matemática Elementar

MATEMÁTICA DISCRETA ARITMÉTICA RACIONAL (6/6) Carlos Luz. EST Setúbal / IPS Maio 2012

Números Inteiros Algoritmo da Divisão e suas Aplicações

, com k 1, p 1, p 2,..., p k números primos e α i, β i 0 inteiros, as factorizações de dois números inteiros a, b maiores do que 1.

Equações Diofantinas + = polinómios conhecidos polinómios desconhecidos

Software de Telecomunicações. Teoria dos números

Complexidade de Algoritmos

Polos Olímpicos de Treinamento. Aula 9. Curso de Teoria dos Números - Nível 2. O Teorema de Euler. Prof. Samuel Feitosa

Sobre números primos

Aula prática 5. Funções Recursivas

Definição. Diremos que um número inteiro d é um divisor de outro inteiro a, se a é múltiplo de d; ou seja, se a = d c, para algum inteiro c.

Note-se que pelo Teorema de Euler. a φ(n) 1 (mod n) logo existe k nas condições da definição acima e. Raízes Primitivas. Ordem de um elemento

Elementos de Matemática Finita ( ) Exercícios resolvidos

Aritmética dos Restos. Problemas com Congruências. Tópicos Adicionais

Seqüências Numéricas

Aritmética. Somas de Quadrados

Números Primos, MDC e MMC. O próximo teorema nos diz que os primos são as peças fundamentais dos números inteiros:

Inteiros. Inteiros. Congruência. Discrete Mathematics with Graph Theory Edgar Goodaire e Michael Parmenter, 3rd ed 2006.

a = bq + r e 0 r < b.

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

MATEMÁTICA 1 MÓDULO 2. Divisibilidade. Professor Matheus Secco

Álgebra A - Aula 02 Teorema da fatoração única, Propriedade fundamental dos primos, números primos

Polos Olímpicos de Treinamento. Aula 7. Curso de Teoria dos Números - Nível 2. Aula de Revisão e Aprofundamento. Prof.

NÚMEROS INTEIROS. Álgebra Abstrata - Verão 2012

Criptografia e Segurança

Congruências I. Por exemplo, 7 2 (mod 5), 9 3 (mod 6), 37 7 (mod 10) mas 5 3 (mod 4). Veja que a b (mod m) se, e somente se, m a b.

Equações Diofantinas I

MD Métodos de Prova 1

TESTES DE PRIMALIDADE

A resolução desses problemas pode geralmente ser feita com o seguinte procedimento: Problemas de divisibilidade 1

NÚMEROS DE FERMAT. (Pedro H. O. Pantoja, Universidade de Lisboa, Portugal)

TEOREMA FUNDAMENTAL DA ARITMÉTICA: APLICAÇÕES

Álgebra I. Volume 3 Módulo 1. Adilson Gonçalves Luiz Manoel Figueiredo. Apoio:

Polos Olímpicos de Treinamento. Aula 11. Curso de Teoria dos Números - Nível 2. O Teorema Chinês dos Restos. Prof. Samuel Feitosa

Triângulos retângulos com lados inteiros: Procurando as hipotenusas

MATEMÁTICA MÓDULO 1 TEORIA DOS NÚMEROS 1. DIVISIBILIDADE 1.1. DEFINIÇÃO 1.2. CRITÉRIOS DE DIVISIBILIDADE

Análise I Solução da 1ª Lista de Exercícios

Lista de Exercícios 6: Soluções Funções

1 Congruências e aritmética modular

Polos Olímpicos de Treinamento. Aula 6. Curso de Teoria dos Números - Nível 2. Congruências II. Prof. Samuel Feitosa

a) Falsa. Por exemplo, para n = 2, temos 3n = 3 2 = 6, ou seja, um número par.

Equações Diofantinas II

Módulo de Números Naturais. Divisibilidade e Teorema da Divisão Euclideana. 8 ano E.F.

Algoritmos. OBMEP Teoria dos números - Parte I. Algoritmo da divisão:

Resposta:

Módulo de Progressões Aritméticas. Soma dos termos de uma P.A. 1 a série E.M. Professores Tiago Miranda e Cleber Assis

MÚLTIPLOS DE UM NÚMERO NATURAL

AGRUPAMENTO DE ESCOLAS DR. VIEIRA DE CARVALHO

MAT 1351 : Cálculo para Funções de Uma Variável Real I. Sylvain Bonnot (IME-USP)

Aritmética dos Restos. Pequeno Teorema de Fermat. Tópicos Adicionais

TEOREMA DE LEGENDRE GABRIEL BUJOKAS

MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL. ENQ Gabarito

RLM - PROFESSOR CARLOS EDUARDO AULA 3

MATEMÁTICA MÓDULO 8 DIVISIBILIDADE E CONGRUÊNCIA. Professor Matheus Secco

AGRUPAMENTO DE ESCOLAS DR. VIEIRA DE CARVALHO

ESTRUTURAS DE REPETIÇÃO - PARTE 1

1 Potências e raízes em Aritmética Modular. Seja p primo e a um inteiro primo com p; a aplicação

Divisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder

Números Primos e Criptografia RSA

Polos Olímpicos de Treinamento. Aula 1. Curso de Teoria dos Números - Nível 2. Divisibilidade I. Samuel Barbosa Feitosa

Instruções de repetição

MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL. ENQ Gabarito

MATEMÁTICA - 8.º Ano. Ana Soares ) Catarina Coimbra

Complexidade de Algoritmos

PROFMAT Exame de Qualificação Gabarito

Demonstração. Sabemosqueϕémultiplicativa. Poroutrolado,sen = p α pαm m é a fatoração canônica de n em primos então temos uma fórmula explícita

Números Primos: onde estão? Por que encontrá-los? Ana Cristina Vieira MAT/UFMG. Primos

Binomiais e Primos. p p 2 + p 3 + p k. Demonstração. No produto n! = n, apenas os múltiplos de p contribuem com um fator p.

MC102 Algoritmos e Programação de Computadores

MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL. ENQ Gabarito. a(x x 0) = b(y 0 y).

XXXIV OLIMPÍADA BRASILEIRA DE MATEMÁTICA PRIMEIRA FASE NÍVEL 2 (8º. e 9º. anos) GABARITO

PLANO DE ESTUDOS DE MATEMÁTICA - 7.º ANO

4.1 Cálculo do mdc: algoritmo de Euclides parte 1

Resolução dos Exercícios 31/05-09/06.

PLANO DE ESTUDOS DE MATEMÁTICA 7.º ANO

CRIVO QUADRÁTICO: IMPLEMENTAÇÃO DA OBTENÇÃO DE UM CONJUNTO DE NÚMEROS COMPLETAMENTE FATORADOS SOBRE UMA BASE DE FATORES

PLANIFICAÇÃO ANUAL DE MATEMÁTICA

XIX Semana Olímpica de Matemática. Nível 2. Equações Diofantinas Lineares e o Teorema Chinês dos Restos. Samuel Feitosa

Criptografia e Segurança de Rede Capítulo 4. Quarta Edição por William Stallings

Transcrição:

CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá

AULA 21 Number theory Primes and factors Modular arithmetic Solving equations Other results

Number Theory A teoria dos números é um ramo da matemática que estuda números inteiros. A teoria dos números é um campo fascinante, porque muitas questões envolvendo números inteiros são muito difíceis de resolver, mesmo que pareçam simples à primeira vista. Como exemplo, considere a seguinte equação: x ³+ y 3 + z ³=33

Number Theory É fácil encontrar três números reais x, y e z que satisfaçam a equação. Por exemplo, podemos escolher x=3, y= 3 3, z= 3 3 No entanto, é um problema aberto na teoria dos números se existem três inteiros x, y e z que satisfizessem a equação. Neste aula, vamos nos concentrar em conceitos básicos e algoritmos na teoria dos números. A partir de agora, vamos supor que todos os números são inteiros, se não for indicado o contrário.

Primes and factors Um número a é chamado de fator ou divisor de um número b se a divide b. Se a é um fator de b, escrevemos a b, e de outra forma nós escrevemos a - b. Por exemplo, os fatores de 24 são 1, 2, 3, 4, 6, 8, 12 e 24. Um número n > 1 é um primo se seus únicos fatores positivos forem 1 e n. Por exemplo, 7, 19 e 41 são primos, mas 35 não é primo, porque 5 * 7 = 35. Para cada número n > 1, existe uma única fatorização n= p 1 α 1 p2 α 2 pn α n,

Primes and factors onde p 1, p 2,, p k são primos distintos e α 1, α 2,, α k são números positivos. Por exemplo, a fatoração de 84 é 84=2² 3¹ 7¹ O número de fatores de um número n é k τ (n)= i=1 (α i +1)

Primes and factors porque para cada primo p i, existem (α i + 1) maneiras de escolher quantas vezes aparece no fator. Por exemplo, o número de fatores de 84 é τ(84) = 3 * 2 * 2 = 12. Os fatores são 1, 2, 3, 4, 6, 7, 12, 14, 21, 28, 42 e 84. A soma dos fatores de n é k σ (n)= i=1 k α (1+ p i + + p i)= i i=1 ( p i α i +1 1 p i 1 ),

Primes and factors onde a última fórmula é baseada na fórmula de progressão geométrica. Por exemplo, a soma dos fatores de 84 é σ (n)=( 23 1 2 1 ) ( 32 1 3 1 ) ( 72 1 7 1 )=7 4 8=224. O produto dos fatores de n é τ (n) μ(n)=n 2,

Primes and factors porque podemos formar τ(n)/2 pares dos fatores, cada um com o produto n. Por exemplo, os fatores de 84 produzem os pares 1 * 84, 2 * 42, 3 * 28, etc., e o produto dos fatores é μ(84) = 84 6 = 351298031616. Um número n é chamado de número perfeito se n = σ(n) n, isto é, n é igual à soma de seus fatores entre 1 e n 1. Por exemplo, 28 é um número perfeito, porque 28 = 1 + 2 + 4 + 7 + 14.

Number of primes É fácil mostrar que existe um número infinito de primos. Se o número de primos fosse finito, poderíamos construir um conjunto P = {p 1, p 2,, p n } que conteria todos os primos. Por exemplo, p 1 = 2, p 2 = 3, p 3 = 5 e assim por diante. No entanto, usando P, poderíamos formar um novo primo p 1 p 2 p n +1 que é maior que todos os elementos em P. Isto é uma contradição, e o número de primos tem que ser infinito.

Density of primes A densidade de primos significa quantas vezes há primos entre os números. Seja π(n) o número de primos entre 1 e n. Por exemplo, π(10) = 4, porque existem 4 primos entre 1 e 10: 2, 3, 5 e 7. É possível mostrar que π (n) n ln(n) o que significa que os primos são bastante frequentes. Por exemplo, o número de primos entre 1 e 10 6 é π(10 6 ) = 78498 e 10 6 / ln 10 6 72382.

Conjectures Existem muitas conjecturas envolvendo primos. A maioria das pessoas pensa que as conjecturas são verdadeiras, mas ninguém foi capaz de prová-las. Por exemplo, as seguintes conjecturas são famosas: Conjectura de Goldbach: Cada inteiro igual a n > 2 pode ser representado como uma soma n = a + b, de modo que tanto a quanto b sejam primos. Conjectura privilegiada dos gêmeos: Existe um número infinito de pares da forma {p, p + 2}, em que p e p + 2 são primos. Conjectura de Legendre: Há sempre um primo entre os números n 2 e (n + 1) 2, onde n é qualquer inteiro positivo.

Basic algorithms Se um número n não é primo, ele pode ser representado como um produto a * b, onde a n ou b n, então certamente tem um fator entre 2 e n. Usando essa observação, podemos testar se um número é primo e encontrar a fatoração primária de um número p no tempo O(n). A seguinte função prime verifica se o número dado n é primo. A função tenta dividir n por todos os números entre 2 e n, e se nenhum deles divide n, então n é primo.

Basic algorithms bool prime(int n) { if (n < 2) return false; for (int x = 2; x*x <= n; x++) { if (n%x == 0) return false; } return true; } A seguinte função factor constroem um vetor que contém a fatoração de n. A função divide n por seus fatores primos e os adiciona ao vetor. O processo termina quando o número restante n não tem fatores entre 2 e n. Se n > 1, é primo e o último fator.

Basic algorithms vector<int> factors(int n) { vector<int> f; for (int x = 2; x*x <= n; x++) { while (n%x == 0) { f.push_back(x); n /= x; } } if (n > 1) f.push_back(n); return f; } Observe que cada fator primo aparece no vetor quantas vezes ele divide o número. Por exemplo, 24 = 2 3 * 3, então o resultado da função é [2, 2, 2, 3].

Sieve of Eratosthenes A peneira de Eratóstenes é um algoritmo de préprocessamento que constrói um vetor usando a verificação eficientemente de um determinado número entre 2 n se é primo e, se não for, encontra um fator primo do número. O algoritmo constrói uma peneira de vetor cujas posições 2, 3,, n são usados. A peneira de valor [k] = 0 significa que k é primo, e a peneira de valor [k] 0 significa que k não é primo e um de seus fatores primos é peneira [k].

Sieve of Eratosthenes O algoritmo percorre os números 2 n, um por um. Sempre que um novo x é encontrado, o algoritmo registra que os múltiplos de x (2x, 3x, 4x, ). Não são primos, porque o número x os divide. Por exemplo, se n = 20, o vetor é o seguinte: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 0 0 2 0 3 0 2 3 5 0 3 0 7 5 2 0 3 0 5

Sieve of Eratosthenes O código a seguir implementa a peneira de Eratóstenes. O código assume que cada elemento da peneira é inicialmente zero. for (int x = 2; x <= n; x++) { if (sieve[x]) continue; for (int u = 2*x; u <= n; u += x) { sieve[u] = x; } }

Sieve of Eratosthenes O loop interno do algoritmo é executado n / x vezes para cada valor de x. Assim, um limite superior para o tempo de execução do algoritmo é a soma harmônica n x=2 n x = n 2 + n 3 + n 4 + + n =O(n log(n)). n De fato, o algoritmo é mais eficiente, porque o loop interno só será executado se o número x for primo. Pode ser mostrado que o tempo de execução do algoritmo é apenas O(n log log n), uma complexidade muito próxima de O(n).

Euclid s algorithm O maior divisor comum dos números a e b, mdc(a, b), é o maior número que divide tanto a como b e o mínimo múltiplo comum de a e b, mmc(a, b), é o menor número que é divisível por ambos a e b. Por exemplo, mdc(24, 36) = 12 e mmc(24, 36) = 72. O maior divisor comum e o menor múltiplo comum são conectados da seguinte maneira: mmc(a,b)= a b mdc(a, b)

Euclid s algorithm O algoritmo de Euclides fornece uma maneira eficiente de encontrar o maior divisor comum de dois números. O algoritmo é baseado na seguinte fórmula: mdc(a,b)= { a b=0 mdc(b,a mod b) b 0 Por exemplo, mdc(24,36)=mdc(36,24)=mdc(24, 12)=mdc(12, 0)=12

Euclid s algorithm O algoritmo pode ser implementado da seguinte forma: int mdc(int a, int b) { if (b == 0) return a; return mdc(b, a%b); } Pode ser demonstrado que o algoritmo de Euclides funciona no tempo O(log n), onde n = min(a, b). O pior caso para o algoritmo é o caso quando a e b são números consecutivos de Fibonacci. Por exemplo, mdc(13,8)=mdc(8,5)=mdc(5,3) mdc(3, 2)=mdc(2, 1)=mdc (1,0)=1

Euler s totient function Os números a e b são coprimos se mdc(a, b) = 1. A função de Euler φ(n) fornece o número de números de coprimo para n entre 1 e n. Por exemplo, φ(12) = 4, porque 1, 5, 7 e 11 são coprimo para 12. O valor de φ(n) pode ser calculado a partir da fatoração de n usando a fórmula k φ(n)= i=1 p i α i 1 ( p i 1) Por exemplo, φ(12) = 2 1 * (2 1) * 3 0 * (3 1) = 4. Note que φ(n) = n - 1 se n é primo.

Modular arithmetic Na aritmética modular, o conjunto de números é limitado de modo que apenas os números 0, 1, 2,, m 1 são usados, onde m é uma constante. Cada número x é representado pelo número x mod m: o resto da divisão de x por m. Por exemplo, se m = 17, então 75 é representado por 75 mod 17 = 7.

Modular arithmetic Muitas vezes podemos pegar os resíduos antes de fazer cálculos. Em particular, as seguintes fórmulas contêm: (x+ y)mod m=(x mod m+ y mod m)mod m (x y)mod m=(x mod m y mod m)mod m (x y)mod m=(x mod m y mod m)mod m (x n )mod m=( x mod m) n mod m

Modular exponentiation Muitas vezes há necessidade de calcular eficientemente o valor de x n mod m. Isso pode ser feito no tempo ={ O(log n) usando a seguinte recursão: 1 n=0 x n n n x 2 2 x n é par x n 1 x n é impar É importante que, no caso de um n par, o valor de x n/2 seja calculado apenas uma vez. Isso garante que a complexidade de tempo do algoritmo seja O(log n), porque n é sempre dividido pela metade quando está igual.

Modular exponentiation A função a seguir calcula o valor de x n mod m: int modpow(int x, int n, int m) { if (n == 0) return 1%m; int u = modpow(x, n/2, m); u = (u*u)%m; if (n%2 == 1) u = (u*x)%m; return u; }

Fermat s theorem and Euler s theorem O teorema de Fermat afirma que x m 1 mod m=1 quando m é primo e x e m são coprimo. Isso também produz x k mod m=x k mod (m 1) mod m. Mais geralmente, o teorema de Euler afirma que x φ(m) mod m=1 quando x e m são coprimo. O teorema de Fermat segue o teorema de Euler, porque se m é primo, então φ(m) = m - 1.

Modular inverse O inverso de x mod m é um número x -1 tal que xx 1 mod m=1 Por exemplo, se x = 6 e m = 17, então x 1 = 3, porque 6 * 3 mod 17 = 1. Usando inversos modulares, podemos dividir números módulo m, porque divisão x corresponde à multiplicação por x -1. Por exemplo, para avaliar o valor de 36/6 mod 17, podemos usar a fórmula 2 * 3 mod 17, porque 36 mod 17 = 2 e 6-1 mod 17 = 3.

Modular inverse No entanto, um inverso modular nem sempre existe. Por exemplo, se x = 2 e m = 4, a equação xx 1 mod m=1 não pode ser resolvido, porque todos os múltiplos de 2 são par e o resto nunca pode ser 1 quando m = 4. Acontece que o valor de x -1 mod m pode ser calculado exatamente quando x e m são coprimo. Se existe um inverso modular, ele pode ser calculado usando a fórmula x 1 =x φ(m) 1

Modular inverse Se m é primo, a fórmula se torna Por exemplo, x 1 =x m 2. 6 1 mod 17=6 17 2 mod 17=3 Essa fórmula nos permite calcular eficientemente as inversões modulares usando o algoritmo de exponenciação modular. A fórmula pode ser derivada usando o teorema de Euler. Primeiro, o inverso modular deve satisfazer a seguinte equação: xx 1 mod m=1.

Modular inverse Por outro lado, de acordo com o teorema de Euler, x φ(m) mod m= xx φ(m) 1 mod m=1, então os números x -1 e x φ(m) - 1 são iguais.

Computer arithmetic Na programação, inteiros sem sinais são representados no módulo 2 k, onde k é o número de bits do tipo de dados. Uma consequência comum disso é que um número que se torna muito grande. Por exemplo, em C++, números do tipo unsigned int são representados pelo módulo 2 32. O código a seguir declara uma variável int sem sinal cujo valor é 123456789. Depois disso, o valor será multiplicado por ele mesmo e o resultado é 123456789 2 mod 2 32 = 2537071545. unsigned int x = 123456789; cout << x*x << "\n"; // 2537071545

Solving equations Na matemática, uma equação diofantina é uma equação polinomial que permite a duas ou mais variáveis assumirem apenas valores inteiros. Uma equação linear diofantina é uma equação entre duas somas de monômios de grau zero ou um.

Diophantine equations Uma equação diofantina é uma equação da forma ax+by=c, onde a, b e c são constantes e os valores de x e y devem ser encontrados. Cada número na equação tem que ser um inteiro. Por exemplo, uma solução para a equação 5 x + 2 y = 11 é x = 3 e y = - 2.

Diophantine equations Podemos resolver eficientemente uma equação diofantina usando o algoritmo de Euclides. Acontece que podemos estender o algoritmo de Euclides para que ele encontre os números x e y que satisfazem a seguinte equação: ax+by=mdc (a,b), Uma equação diofantina pode ser resolvida se c é divisível pelo mdc(a, b) e, caso contrário, não pode ser resolvido.

Diophantine equations Como exemplo, vamos encontrar números x e y que satisfaçam a seguinte equação: 39 x +15 y=12, A equação pode ser resolvida, porque mdc(39, 15) = 3 e 3 12. Quando o algoritmo de Euclides calcula o maior divisor comum de 39 e 15, produz a seguinte sequência de chamadas de função: mdc(39, 15)=mdc(15, 9)=mdc (9, 6) mdc(6,3)=mdc(3,0)=3

Diophantine equations Isso corresponde às seguintes equações: 39 2 15=9 15 1 9=6 9 1 6=3 Usando essas equações, podemos derivar 39 2+15 ( 5)=3

Diophantine equations e multiplicando isso por 4, o resultado é 39 8+15 ( 20)=12 Portanto, uma solução para a equação é x = 8 e y = - 20.

Diophantine equations Uma solução para uma equação diofantina não é única, porque podemos formar um número infinito de soluções se soubermos uma solução. Se um par (x, y) é uma solução, então também todos os pares ( x+ k b mdc(a,b), y k a mdc(a,b)) são soluções, onde k é qualquer inteiro.

Chinese remainder theorem O teorema de resto chinês resolve um grupo de equações da forma x=a 1 mod m 1 x=a 2 mod m 2 x=a n mod m n onde todos os pares de m 1, m 2,, m n são coprimo. Seja x 1 m o inverso de x módulo m, e X k = m 1 m 2 m n m k

Chinese remainder theorem Usando esta notação, uma solução para as equações é x=a 1 X 1 X 1 1 m 1 +a 2 X 2 X 2 1 m 2 + +a n X n X n 1 m n Nesta solução, para cada k = 1, 2,, n, a k X k X k 1 m k mod m k =a k, Porque X k X k 1 m k mod m k =1,

Chinese remainder theorem Como todos os outros termos da soma são divisíveis por m k, eles não têm efeito sobre o restante, e x mod m k = a k. Por exemplo, uma solução para x=3 mod 5 x=4 mod 7 x=2 mod 3 Nesta solução, para cada k = 1, 2,, n, 3 21 1+4 15 1+2 35 2=263

Chinese remainder theorem Depois de encontrarmos uma solução x, podemos criar um número infinito de outras soluções, porque todos os números da forma x+m 1 m 2 m n são soluções.

Other results O teorema de Lagrange afirma que cada inteiro positivo pode ser representado como uma soma de quatro quadrados, ou seja, a 2 + b 2 + c 2 + d 2. Por exemplo, o número 123 pode ser representado como a soma 8 2 + 5 2 + 5 2 + 3 2.

Zeckendorf s theorem O teorema de Zeckendorf afirma que todo inteiro positivo tem uma representação única como uma soma de números de Fibonacci, de modo que nenhum número é igual ou consecutivo a um número de Fibonacci. Por exemplo, o número 74 pode ser representado como a soma 55 + 13 + 5 + 1.

Pythagorean triples Um triplo pitagórico é um triplo (a, b, c) que satisfaz o teorema de Pitágoras a 2 + b 2 = c 2, o que significa que existe um triângulo retângulo com comprimentos laterais a, b e c. Por exemplo, (3, 4, 5) é um triplo pitagórico. Se (a, b, c) é um triplo pitagórico, todos os triplos da forma (ka, kb, kc) são também triplos pitagóricos onde k > 1. Um triplo pitagórico é primitivo se a, b e c são coprimos, e todos triplos pitagóricos podem ser construídos a partir de triplos primitivos usando um multiplicador k.

Pythagorean triples A fórmula de Euclides pode ser usada para produzir todos os triplos pitagóricos primitivos. Cada um desses triplo é da forma (n ² m ²,2 nm, n ²+m²), Onde 0 < m < n, n e m são coprimos e pelo menos um entre n e m é par. Por exemplo, quando m = 1 e n = 2, a fórmula produz o menor triplo pitagórico (2² 1², 2 2 1, 2²+1²)=(3, 4,5)

Wilson s theorem Teorema de Wilson afirma que um número n é primo exatamente quando (n 1)! mod n=n 1. Por exemplo, o número 11 é primo, porque 10! mod 11=10, e o número 12 não é primo, porque 11! mod 12=0 11 Assim, o teorema de Wilson pode ser usado para descobrir se um número é primo. No entanto, na prática, o teorema não pode ser aplicado a grandes valores de n, porque é difícil calcular valores de (n - 1)! quando n é grande.

Sites visitar