Escolar Documentos
Profissional Documentos
Cultura Documentos
Ant PDF
Ant PDF
!
"
#
e, portanto, pelo
lema, existe k tal que, $
%
|&
'
( )
*
=+
,
, j que ambos so primos. Por
extenso, para qualquer - <., existe um / <0 tal que 1
2
|3
4
( 5
6
=7
8
. Por
fim, basta provar que n=k, que trivial, j que, se n>k, teriamos que
9
:
;
<
=
>
?
@
= A
B
C
D
E
F
= G
H
I
J
K
L
, o que absurdo, j que M >1. Ou
seja, o conjunto de N
O
deve ser idntico ao de P
Q
, finalizando a demonstrao
da unicidade.
Por (i) e (ii), est demonstrado o Teorema Fundamental da Aritmtica.
Teorema 1.2: Se n no primo, ento possui, necessariamente, um fator
primo menor do que ou igual a =R.
Demonstrao: Sendo n composto, ento S =T.U, onde 0 <V <W e
0 <X <Y, o que pode ser visto como uma consequncia do teorema
anteiror. Sem perda de generalidade, vamos supor que Z 1 \. Suponhamos,
por absurdo, que ] >=^. Logo, _ =`.a > =b.=c =d, chegando na
desigualdade e >f, que obviamente um absurdo. Portanto, g 1 =h e,
pelo teorema anterior, a possui algum fator primo, que deve ser menor que a
e, por conseguinte, menor que =i. Da, conclumos que n possui um fator
primo menor que =j, o que completa a demonstrao.
Corolrio 1.1: Se um nmero no possui nenhum fator primo p, tal que
2 1 l 1 =m, ento primo.
Demonstrao: Segue imediatamente do teorema, aplicando-se a sua
contrapositiva.
O Crivo de Eratstenes uma consequncia do Teorema 1.2 e do Corolrio
1.1. J que para verificar se um nmero primo basta testar divisibilidade
pelos nmeros menores que =n, ento para criar uma lista de primos at n,
suficiente ter uma lista de todos os nmeros at n e excluir dela todos os
mltiplos de primos menores que =o. Esse processo pode ser descrito pelo
seguinte algoritmo:
Algoritmo 1(Crivo de Eratstenes):
Entrada: inteiro positivo mpar p.
Sada: lista de primos mpares 1 r.
Etapa 1: Comece criando um vetor v de (s t 1)/ 2 posies, cada uma das
quais deve estar preenchida com o valor 1; e fazendo u =3.
Etapa 2: Se v
w
>x, escreva em uma lista os nmeros 2y +1 para os quais a
j-sima entrada do vetor v 1 e pare; seno seno v para a etapa 3.
Etapa 3: Se a posio (z t1)/ 2 do vetor v est preenchida com 0
incremente P de 2 e volte etapa 2; seno v para a etapa 4.
Etapa 4: Atribua o valor de {
|
a uma nova varivel T: substitua por zero o
valor da posio (} t 1)/ 2 do vetor v e incremente ~ de 2; repita essas
duas instrues at que T >n; quando isto acontecer, incremente P de 2 e
volte etapa 2.
fcil ver que a etapa 2 do algoritmo uma consequncia imediata do
Teorema 1.2 e do seu corolrio. O algoritmo acima, da maneira descrita,
uma verso do Crivo de Eratstenes que cria uma lista de todos os primos
mpares. Se quisermos criar uma lista de todos os primos, basta adicionar o 2,
que , obviamente, o nico primo par. Para mais informaes sobre o
algoritmo acima, ver referncia [3].
O algoritmo acima ser uma das chaves para a soluo do problema
proposto.
2. Congruncias
A principal motivao dessa sesso apresentar alguns conceitos e
propriedades bsicas de congruncias e, por fim, formular um algoritmo
eficiente para calcular potenciao em aritmtica de mdulo que ser usado
para, depois de encontrados os nmeros primos p, testar se
!"#
$
1 ($%& '
(
).
Def.2.1: Sejam a e b nmeros inteiros. Dizemos que a congruente a b,
mdulo m () >0) e denotamos por * $ , (-./ 0), se 1|(2 t 4). Se
5 6 (7 t 9), dizemos que a incongruente a b, mdulo m, e denotamos por
: ; < =>?(@).
Propriedades: Se a,b,c,d,e e m so inteiros tais que A $ C (DEF G) e
H $ J (KLM N), ento as seguintes propriedades so vlidas:
1. O +P $ R +S (TUV W)
2. X t Z $ \ t ^ (_`a b)
3. cd $ fg (hij k)
4. l +m $ o +p (qrs t)
5. u t w $ y t { (|}~ )
6. ! $ #$ (%&' ()
Enunciamos aqui algumas propriedades das congruncias. A demonstrao
de todas elas pode ser encontradas em [2]. Vamos nos limitar
demonstrao de duas delas:
Demonstrao (propriedade 1): Se ) $ + (,-. /) ( 1|(2 t 4), ou seja
5|(6 +7 t 9 t ;) ( =|(> +?) t (@ +A) e, por definio, B +C $ E +
F (GHI J), completando a demonstrao.
(Propriedade 3): Se K $ M (NOP Q) ( S|(T t V), ou seja m tambm divide
(W t Y) multiplicado por algum inteiro no nulo. Sendo esse inteiro Z, temos
que [|(\] t _`) ( bc =de (fgh i).
As demonstraes para as outras propriedades so anlogas e seguem
imediatamente da definio de congruncia, dada em 2.1, e das
propriedades bsicas da diviso.
Apenas com essas propriedades, possvel criar um algoritmo eficiente para
calcular a forma reduzida de potencias em mdulo n sem, necessariamente,
ter que calcular a potncia do nmero e depois verificar a congruncia,
simplificando, portanto, vrios passos computacionais. Vejamos uma
motivao para o algoritmo:
Considere o problema de calcular a forma reduzida (com j <k) de
l
m
$ o (pqr s). E seja t =u
v
2
w
+ x
yz{
2
|}~
+
0
a representao
binria de c, onde os coeficientes valem 0 ou 1. Logo, temos que o
c
=
o
b
n
2
n
+ b
n-1
2
n-1
+ b
0
= (o
2
)
b
n
2
n-1
+ b
n-1
2
n-2
+ b
1
.o
b
0
e assim por diante.
Perceba que, pela propriedade 3, basta calcular o mdulo reduzido de cada
componente o
2
k
b
k
e multiplicar todos eles, mdulo n. Alm do mais, os
valores de b
k
so facilmente identificveis: 1, se o expoente restante for
mpar, ou zero caso contrrio.
A argumentao exposta acima nos conduz ao seguinte algoritmo:
Algoritmo 2
Entrada: Inteiros a, e e n, onde o,n >0 c c 0.
Sada: a forma reduzida de o
c
mdulo n
Etapa 1: Comee com A =a, P =1 e E =e.
Etapa 2: Se E =0, retorne P.
Etapa 3: Se E for mpar, ento atribua a P o valor do resto da diviso de AP
por n e a E o valor (E t1)/ 2 e v para a etapa 5, seno v para a etapa 4.
Etapa 4: Se E for par ento atribua a E o valor de E/ 2 e v para a etapa 5.
Etapa 5: Troque A por A.A (moJ n) e v para 2.
Mais detalhes sobre o algoritmo tambm podem ser encontrados na
referncia bibliogrfica [3], no seu apndice.
3. A congruncia a
p-1
$ 1 (mud p
2
).
Tendo em mente os resultados apresentados nas sesses 1 e 2, podemos,
enfim, atacar o problema objetivo desta monografia, desenvolvendo um
algoritmo para o clculo de congruncias do tipo o
p-1
$ 1 (moJ p
2
), sendo
o +1 1 p 1 r, p um primo e o,r inteiros.
Antes de apresentar o algoritmo, entretanto, precisamos fazer duas
modificaes no Crivo de Eratstenes, de modo que ele escreva na lista
apenas os nmeros maiores do que +1. Para isso, basta adicionar etapa
2 a condicional: Se 2 +1>! +1, escreva na lista. A outra modificao,
adicionar o nmero 2 ao incio da lista, aumentando em 1 o seu tamanho.
Vamos chamar esse novo algoritmo de Algoritmo 1.
Com essa modificao, temos ferramentas suficientes para criar um
algoritmo simples capaz de resolver o problema proposto.
Algoritmo 3
Entrada: Valores para a e r, conforme a descrio do problema dada acima.
Saida: Uma lista com os primos que satisfazem a equao.
Etapa 1: Utilize o Algoritmo 1 para criar um vetor com todos os primos de
" +1 at #, que chamaremos de vetor A.
Etapa 2: Crie um novo vetor B.
Etapa 3: Para todos os elementos da lista A, verifique, atravs do Algoritmo
2, se $
%&'
$ 1 (()* +
,
). Se sim, inclua no vetor B o elemento p e passe
para o prximo elemento de A. Caso contrrio, apenas passe para o prximo
elemento de A.
Apesar da aparente simplicidade desse algoritmo, algumas consideraes
necessitam ser feitas a seu respeito.
Em primero lugar, o algoritmo proposto envolve a chamada de outros dois
algoritmos (1 e 2), o que aumenta a sua complexidade e custo
computacional, tornando-o dependende da eficincia dos dois algoritmos.
Em segundo, h, de maneira intrnseca ao algoritmo, a exigncia de criao
de um vetor A, que pode ser arbitrariamente grande, a depender da
quantidade de primos distribuidos entre a+1 e r. Isso quer dizer, que o
algoritmo est limitado ao tamanho mximo que um vetor pode ter em uma
linguagem de programao, em algum sistema. Implementaes futuras
envolvendo listas ligadas, aritmtica de preciso mltipla e computao
algbrica melhorariam substancialmente a sua eficincia, assim como
diminuiriam a sua dependncia de uma memria alocada.
Alm disso, vemos que o vetor B no possui um tamanho pr-determinado.
Implementaes para o algoritmo, deveriam envolver alocao dinmica
para a sua criao, j que, a prori, no sabida nenhuma forma para a
distribuio de primos que satisfazem a propriedade a seguir.
Por fim, a implementao das idias aqui apresentadas foi feita na linguagem
C e baseou-se fielmente nos algoritmos propostos nessa monografia. Alm
das solues triviais (para a =1), encontramos a soluo para a =3 e p =11,
que verifica a seguinte relao de congruncia: 3
-.
$ 1 (/01 11
2
).
Referncias
[1] Niven, I. et al, An Introduction to the Theory of Numbers, Fifth Edition.
[2] Santos, J.P.O, Introduo Teoria dos Nmeros, IMPA 2003.
[3] Coutinho, S.C, Nmeros Inteiros e Criptografia RSA, IMPA 2005.