UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Análise de Algoritmos Professora : Sandra Aparecida de Amo Solução Exercicios Selecionados da Lista - AULA 5 - 15/04/2013 Exercicio 2(a) p é primo, p divide ab, p não divide a. Temos de mostrar que p divide b. Solução: p é primo e p não divide a. Então o mdc(p,a) = 1. Logo existem inteiros x, y tais que xp + ya = 1. Multiplicando por b dos dois lados temos: bxp + aby = b Logo, como p divide bxp, e p divide aby (pois por hipótese, p divide ab) então concluimos que p divide a soma destes dois números que é b. Exercicio 2(b): Apenas uma reformulação do enunciado do exercicio 2a: Se p é primo e p divide ab então p divide a ou p divide b. Prova: se p divide a, ok. Se p não divide a, concluimos pelo item (2a) que p divide b. Logo ou p divide a ou p divide b. Exercicio 3 Seja p primo, a ≡ b mod p , x divide a, x divide b, x e p primos entre si. Mostrar que a/x ≡ b/x mod p. (1) (2) (3) (4) Solução: x divide a implica que a = q1 x, para algum q1 inteiro. x divide b implica que b = q2 x, para algum q2 inteiro. a ≡ b mod p implica que p divide (a-b) x e p primos entre si significa que o mdc(p,x) = 1 Queremos mostrar que p divide (q1 − q2 ). De (3) temos que p divide a − b. Aplicando (1) temos que p divide x(q1 − q2 ). Aplicando o exercicio 2b, temos que p divide x ou p divide (q1 − q2 ). Mas por (4) temos que mdc(p,x) = 1 e portanto que p não divide x. Logo p deve dividir (q1 − q2 ). Contraexemplo no caso de x e p não serem primos entre si: Sejam p = 3, a = 27, b = 6, x = 3. Temos que 27 ≡ 6 mod 3. Mas 27/3 não é congruente a 6/3 mod 3. Repare que x e p não sã o primos entre si, pois mdc(x,p) = 3. Utilizamos o resultado deste exercicio na demonstração do Teorema de Fermat. 1 Exercicio 4: Demonstração do Teorema de Wilson: p é primo se e somente se (p−1)! ≡ −1 mod p e que tal resultado, embora sendo um teste completo de primalidade (já que diferentemente do Teorema de Fermat fornece uma condição necessária e suficiente para que um número seja primo), não pode ser considerado um teste de primalidade implementável. Solução: • (a) Mostrar que todo número x, 1 ≤ x < p é inversı́vel mod p, onde p é primo. Caso 1: p > 2: Pelo Teorema de Fermat, temos que xp−1 ≡ 1 mod p. Logo x.xp−2 ≡ 1 mod p. Logo o inverso de x é xp−2 mod p. Exemplo, o inverso de 15 mod 31 é 1529 = 29 mod 31. Caso 2: p = 2. Neste caso, o único x tal que 1 ≤ x < 2 é x = 1. E é claro, x é inversı́vel mod 2 pois x.x = 1. • (b) Existem números x, 1 ≤ x < p, tais que seu inverso mod p é ele próprio ? Quais são eles ? x = 1 é um destes números, pois x.x = 1 mod p. x = p − 1 é outro destes números pois (p − 1)(p − 1) = p2 − 2p + 1 = p(p − 2) + 1 ≡ p mod p. Afirmamos que estes dois números são os únicos cujos inversos são eles mesmos. Suponha x = 2, ..., p − 2. Então x = p − k com k = 2, ..., p − 2. Se x.x ≡ 1 mod p então (p − k)(p − k) ≡ 1 mod p. Portanto: p dividiria p2 − 2pk + k 2 − 1. Portanto p dividiria k 2 − 1. Mas k 2 − 1 = (k+1)(k1). Se p dividisse (k+1)(k-1), pelo exercicio 2, teriamos que p dividiria k+1 ou p dividiria k-1. É possivel que p divida k - 1 ? Como k = 2, ..., p − 2 então k − 1 = 1, ..., p − 3. E portanto, p não pode dividir nenhum destes números que são menores do que p. É possivel que p divida k + 1 ? Como k = 2, ..., p − 2 então k + 1 = 3, ..., p − 1. E portanto, p não pode dividir nenhum destes números que são menores do que p. Logo, as únicas possibilidades para x são x = 1 ou x = p − 1. • (c) Seja p um primo. Vamos mostrar que (p − 1)! ≡ −1mod p. Primeiramente vamos mostrar que a função f (x) = x−1 mod p é INJETORA (dois números distintos mod p não podem ter o mesmo inverso mod p). Prova: Suponha que x−1 ≡ y −1 mod p. Multiplicando dos dois lados por x, temos 1 ≡ x.y −1 mod p. Multiplicando dos dois lados por y temos: y ≡ x mod p. Logo, 2 mostramos que f é injetora. (fim da prova) (p − 1)! contém todos os fatores de 1 a p-1. Cada um destes fatores tem seu inverso no conjunto {1,...,p-1}, sendo que estes inversos são distintos para fatores distintos. Logo p − 1)!(p − 1)! ≡ 1 mod p (agrupando-se cada fator da primeira cópia de (p-1)! com seu inverso na outra cópia de (p-1)!). Logo, concluimos que (p-1)! é um número cujo inverso mod p é ele próprio. Pelo que foi mostrado no item (b), sabemos que uma das seguintes possibilidades pode ocorrer: (p − 1)! ≡ 1 mod p OU (p − 1)! ≡ (p − 1) mod p. Vamos mostrar que a primeira possibilidade não pode ocorrer: Por absurdo: Se (p-1)! fosse equivalente a 1 mod p, então (p − 1)(p − 2)! ≡ 1 mod p. Logo (p-2)! seria o inverso de (p-1) mod p. Mas sabemos (item (b)) que o inverso de (p-1) mod p é ele mesmo. Logo teriamos que (p − 1) ≡ (p − 2)!modp. (*) Ainda sob a suposição de que (p-1)! fosse equivalente a 1 mod p, teriamos por outro lado que (p − 2)! ≡ 1modp : De fato, como o inverso de (p-1) é ele próprio e a função f (que produz os inversos de cada número entre 1 e p) é injetora. então os inversos dos números entre 1 e p-2 estariam todos entre 1 e p-2. O inverso de 1 é 1. Logo os inversos dos números 2,..., p-2 estariam no intervalo [2,...,p-2]. Veja que este intervalo contém um número PAR de números (p-2 - 1 números). Logo concluimos que (p − 2)! ≡ 1 mod p. (**) De (*) e (**) concluiriamos que (p-1) ≡ 1 mod p, o que é absurdo. Logo a suposição de (p-1)! ser equivalente a 1 mod p NÃO PROCEDE. Resta portanto somente a outra alternativa: (p − 1)! ≡ (p − 1) mod p. E portanto, (p − 1)! ≡ −1 mod p. (fim da prova do item (c)). • (d) Se p não é primo então não é possivel que (p-1)! ≡ −1 mod p. Suponha por absurdo que (p-1)! ≡ −1 mod p. E considere o mdc(p,(p-1)!) = q 6= 1. • (e) O teorema de Wilson não pode ser considerado um teste de primalidade, pois para testar se um número p é primo requer calcular (p-1)! e compará-lo com -1 mod p. O cálculo do fatorial tem complexidade maior do que exponencial, portanto infactı́vel. (Vimos que an = o(n!) nos exercicios da aula 3). 3