Buscar

Exercício para estudo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos e Estrutura de Dados 1
Profa. Dra. Maria´ Cristina Vasconcelos Nascimento
Monitor: Kevin Brennan Guzi
1. Introduc¸a˜o
A teoria dos nu´meros tem como objetivo o estudo das propriedades dos nu´meros e, em par-
ticular, os nu´meros inteiros. Esse ramo da matema´tica e´ estudado desde civilizac¸o˜es antigas,
pore´m e´ na Gre´cia que primeiro identificamos a teoria do nu´meros tal como entendemos hoje
em dia. O que mais chama atenc¸a˜o neste ramo sa˜o as propriedades dos nu´meros primos. Tal
importaˆncia e´ dada por na˜o existir um me´todo eficiente para encontrar esses nu´meros, que tem
grandes aplicac¸o˜es na teoria dos nu´meros e criptografia. A primeira forma de tabelar os nu´meros
primos surgiu com Erato´stenes, por volta de 300 a.C. e 200 a.C., que logo foi denominado como
o Crivo de Erato´stenes.
2. Funcionamento do Crivo de Erato´stenes
O crivo tem como objetivo identificar todos os nu´meros primos ate´ um nu´mero n, sendo n >= 2.
Sa˜o feitos os seguintes passos:
• Listamos todos os nu´meros de 2 a n.
• Pegamos o primeiro nu´mero da lista, no caso 2, que sera´ atribu´ıdo a uma varia´vel m, e
retiramos da lista todos os nu´meros que sa˜o divis´ıveis por 2 que na˜o seja o pro´prio 2.
• Em seguida, e´ escolhido o pro´ximo nu´mero que na˜o foi retirado da lista, no caso, o nu´mero
3. Portanto, agora m vale 3, e sa˜o retirados todos os nu´meros divis´ıveis por 3 desta lista,
exceto o 3.
• Este processo continua ate´ que o pro´ximo nu´mero m tenha a seguinte condic¸a˜o, m2 > n.
Assim a contagem pa´ra. Todos os nu´meros da lista que na˜o foram retirados sa˜o primos.
1
Exemplo:
Um exemplo para n = 120.Primeiramente listamos os nu´meros de 2 a 120, como mostrado
na figura a seguir:
Logo pegamos o primeiro nu´mero da lista e atribuimos-o a m, assim m = 2, e retiramos
da lista os nu´meros divis´ıveis por 2, que na˜o seja 2:
2
Tomaremos como m o pro´ximo nu´mero na˜o retirado da lista, assim m = 3, e enta˜o,
retiramos da lista os nu´meros divis´ıveis por 3, que na˜o seja 3:
Fazemos o mesmo para m = 5:
3
Para m = 7:
Quando m = 11, a condic¸a˜o m2 > n sera´ verdadeira, 112 > 120, portanto a contagem
pa´ra por a´ı. Todos os nu´meros na˜o retirados da lista sa˜o nu´meros primos, como e´ poss´ıvel
verificar na figura a seguir.
Figura 1: Resultado quando m = 11.
Figura 2: figm11
3. Exerc´ıcio
O programa a ser feito consiste em calcular a quantidade de fatores primos de um conjunto
de nu´meros inteiros. O programa deve ler a quantidade de nu´meros a serem analisados N .
Para cada nu´mero lido mi, sendo i ∈ {1, 2, ..., n}, deve ter como sa´ıda o pro´prio mi seguido da
quantidade de fatores primos, separados por ”:”.
4
Exemplo
Entrada
11
346574243
1233543563
1234543628
756432342
985632576
433212557
642345678
321334572
956432312
186314639
345645721
Sa´ıda
346574243 : 3
1233543563 : 3
1234543628 : 5
756432342 : 4
985632576 : 3
433212557 : 2
642345678 : 5
321334572 : 4
956432312 : 4
186314639 : 2
345645721 : 1
Restric¸o˜es:
2 ≤ mi ≤ 2000000000
0 < n ≤ 100
O Crivo de Erato´stenes deve ser usado para a resoluc¸a˜o do problema. Usar Lista Esta´tica
Sequencial para implementar o Crivo de Erato´stenes, tendo que usar func¸o˜es de inicializac¸a˜o,
inserc¸a˜o (inserc¸a˜o ao final da lista), remoc¸a˜o e busca. Uma outra Lista Esta´tica Sequencial
tambe´m deve ser usado para armazenar os nu´meros que sera˜o feitos a fatorac¸a˜o, tendo de
haver func¸o˜es de inicializac¸a˜o, inserc¸a˜o e remoc¸a˜o. As listas e suas func¸o˜es devem ser
implementadas a parte do programa como uma biblioteca. A lista deve ser implementada no
mesmo formato apresentado no slide.
4. Refereˆncias Bibliogra´ficas
• pt.wikipedia.org/wiki/Crivo-de-Erato´stenes.
• Coutinho, S. C. (2007) Nu´meros Inteiros e Criptografia RSA Segunda Edic¸a˜o, IMPA,
Rio de Janeiro.
5

Outros materiais