Você está na página 1de 8

Teoria Aritmtica dos Nmeros MA553

Monografia: Um algoritmo para soluo de congruncias


do tipo
!"#
$ % (&'( )
*
).

Campinas, outubro de 2007

Antonio Carlos Campello, RA 059076
Isabel Leal, RA 061533










Resumo:
Nessa monografia, estudaremos alguns conceitos bsicos de teoria aritmtica
dos nmeros, em particular congruncias e testes de primalidade de inteiros,
com o objetivo de formular um algoritmo preciso para resolver a seguinte
problemtica:
Sejam +,, - .. Quais so os primos /, com 0 +1 1 2 1 3, tais que
4
567
$ 1 (89: ;
<
) ?
Introduo:

Os primeiros trabalhos em teoria aritmtica dos nmeros so datados da n-
dia Antiga (por volta do ano de 800 AC) e envolvem solues inteiras para as
chamadas equaes diofantinas [1], contudo, os resultados mais importantes
no assunto s foram demonstrados pelos gregos, por volta do sculo 3 antes
de Cristo. Dentre os matemticos gregos, podemos colocar em posio de
destaque Euclides de Alexandria (330-260 AC) e Eratstenes de Cirene, (276 -
194 AC).
Euclides foi professor, matemtico e escritor. Sua principal obra (e
contribuio) para a matemtica foram Os elementos, em que so
estabelecidas as bases da geometria euclidiana. Em teoria de nmeros,
possvel enumerar diversos resultados notveis (e usados at hoje) atribuidos
a ele, como o algoritmo para a diviso, a demonstrao da irracionalidade do
nmero =2 (diagonal de um quadrado de lado 1) e a prova da infinitude dos
nmeros primos. Todas essa demonstraes podem ser encontradas em [1].
Eratstenes, por sua vez, realizou sua maior contribuio para a teoria de
nmeros com a criao do chamado Crivo de Eratstenes, que ser descrito
cuidadosamente a seguir. O Crivo , at hoje, uma das formas mais eficientes
para criao de listas de nmeros primos e, portanto, tem grande
aplicabilidade, por exemplo, na teoria de criptografia.
Dentre outros matemticos que estudaram teoria dos nmeros, foram
notveis Pierre de Fermat (1601-1665 DC), Leonhard Euler (1707-1783 DC),
Friedrich Gauss (1777-1855 DC), et al.

1. Crivo de Eratstenes
Def. 1.1: Se > e ? so nmeros inteiros, dizemos que a divide b, denotando
por @|A, se existir um inteiro c tal que B =CD.
Def. 1.2: Dizemos que d o mximo divisor comum de a e b (e denotamos
por (E,F) =G), se d o maior inteiro que divide a e b.
Def. 1.3: Um nmero inteiro n (n>1) dito primo, se possuir somente dois
divisores positivos, n e 1. Se n no primo, dizemos que ele composto.

Teorema 1.1 (fundamental da Aritmtica): Todo inteiro maior do que 1 pode
ser representado de maneira nica (a menos da ordem) como um produto de
fatores primos.
Demonstrao: (i) Existncia: Suponhamos, por absurdo, o oposto da tese,
ou seja, que existe pelo menos um inteiro maior do que 1 que no possa ser
representado por fatores primos. Seja A o conjunto de todos esses nmeros.
Como A um subconjunto dos inteiros, certamente ele possui um elemento
mnimo, pelo Princpio da Boa Ordenao. Seja H esse elemento. Como I
maior do que 2 (j que 2 primo, e tem fatorao em fatores primos), ento
existem a e b, tais que J =KL, com M <N O P <Q, e como R S T U V S W,
eles possuem fatorao e, portanto, X =YZ, possui fatorao, o que
absurdo, pois [ - \. Logo, A no pode ter elemento mnimo, e, portanto,
] =^, o que completa a demonstrao da existncia.
(ii) Unicidade: Para demonstrar a unicidade, vamos lanar mo do seguinte
lema, cuja demonstrao pode ser encontrada em [1]: Se _|`
a
b
c
d
e
, com p
primo, ento f divide pelo menos um fator g
h
do produto.
Sejam i =j
k
l
m
n
o
=p
q
r
s
t
u
duas fatoraes de x. Perceba que os v
w
xy
no so necessariamente distintos, assim como os z
{
s . Da igualdade, e da
definio de divisibilidade, verificamos que |
}
|~

!
"
#
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.

Você também pode gostar