Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
deathseeker25

EUA: Universidade calcula maior número primo conhecido

Recommended Posts

deathseeker25

Esta notícia é especialmente para o vbmaster... :cheesygrin:

A Universidade do Missouri anunciou que um grupo de 700 computadores calculou o maior número primo que se conhece.

O algarismo encontrado tem 9.152.052 dígitos. É a segunda vez no ano que está prestes a terminar que um número primo de proporções astronómicas é calculado. A iniciativa faz parte do projecto Gimps (Grande Busca de Número Primo Mersenne na Internet), que oferece um prémio de 100 mil dólares a quem chegar a um número primo com dez milhões de dígitos.

Assim como aconteceu com o número calculado em Fevereiro, o anunciado agora chegou perto de levar o prémio que será pago pela Electronic Frontier Foundation, mas ainda não foi suficiente.

O Gimps conta com a participação de 200 mil computadores que oferecem voluntariamente o seu poder de processamento para chegar a números primos Marsenne gigantescos.

Um número primo é um número que só pode ser dividido por um ou por ele mesmo sem que tenha um resto de divisão. Um Mersenne é um tipo especial de primo que é definido por dois elevado a uma potência específica, menos um. Por exemplo, sete é um Mersenne, pois é dois elevado ao cubo menos um. O número recém-anunciado é dois elevado à 30.402.457ª potência menos 1.

Números primos - e os Mersenne em particular - têm um papel fundamental na definição de algoritmos computacionais de criptografia Quanto maiores estes números, mais difíceis é quebrar o esquema de segurança.

Apesar disto, número gigantescos, como o recém-anunciado, têm um interesse puramente académico, devido à dificuldade de serem usados num sistema comercial. Para se ter uma ideia do que isso representa, seriam necessários 67 mil anos de processamento de um computador com um Pentium a 90MHz para se calcular o número que foi anunciado agora.

Fonte: Infortech United

Então pa, quando é que descobres um numero primo com 10 milhões de digitos para ganhares o prémio e dares uns trocos ao P@P....? :D

Sabes certamente do que estou a falar... :)

Cumps

Share this post


Link to post
Share on other sites
vbmaster

Sei sim....

epah..eu falo como o Mare não sei quê, o superpc recentemente desenvolvido peço-lhe 1% do seu processamento e meto lá o meu programazinho em c++ a correr....

o problema é que acho que nem a long int chega a tanto algarismo... :P

Pode ser que esse pc tenha um long int maior que o normal de um pc 32bits.... (deve ter, claro...) ;)

Fiquem bem :D ;):)

Share this post


Link to post
Share on other sites
deathseeker25

O Mare Nostrum....com 1% do seu poder de processamento já tinhas o prémio em casa... :cheesygrin:

Share this post


Link to post
Share on other sites
saramgsilva

bem isto que voces estam a falar, só é possivel graças ao uso de programação paralela, algo giro...mas muito complexo, eu recentemente num trabalho meu para computacao paralela, tive que calcular os numeros primos, usando a paralelizacao, claro que o meu programa esta mto longe do programa usado pra atingir o k ja foi atingido...o maior primo k encontrei foi inferior ao valor natural 209 000!!(mto pequeno...eu sei o  k era importante era mm paralelizar o programa...)

bem, e pelo meio deste trabalho encontrei um pdf muito fixe, que tentei ler, mas desisti pois é um pouco complexo, que fala neste tema, os numero primos de mersen... aqui fica o ficheiro para voces ver, um pouco de um programa para atingir o numero que foi atingido...

numeros primos de mersen

lembrei agora que tv nao tenha o programa completo...mas explica +- como funciona  🤔

ah e de lembrar....um numero primo de mersen é um numero escrito da forma ( 2^k) -1 para k>=1 (acho que nao disse asneiras)  :cheesygrin:

Share this post


Link to post
Share on other sites
vbmaster
o maior primo k encontrei foi inferior ao valor natural 209 000!!(mto pequeno...eu sei o  k era importante era mm paralelizar o programa...)

Admite tofas, quanto é que queres pelo meu programa? :D

Share this post


Link to post
Share on other sites
saramgsilva
o maior primo k encontrei foi inferior ao valor natural 209 000!!(mto pequeno...eu sei o  k era importante era mm paralelizar o programa...)

Admite tofas, quanto é que queres pelo meu programa? :D

fizeste um programa paralelizado....para calcular os numeros primos??? hummm  e usa o que ? C + MPI?? eu uso isso...  🤔

Share this post


Link to post
Share on other sites
vbmaster

fizeste um programa paralelizado....para calcular os numeros primos??? hummm  e usa o que ? C + MPI?? eu uso isso...  🤔

Oh tofas o meu programa de números primos já tu conheces...  😳

Pus o código na secção c++ num thread teu, acho eu....

Share this post


Link to post
Share on other sites
saramgsilva

fizeste um programa paralelizado....para calcular os numeros primos??? hummm  e usa o que ? C + MPI?? eu uso isso...  🤔

Oh tofas o meu programa de números primos já tu conheces...  😳

Pus o código na secção c++ num thread teu, acho eu....

aaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhh pois...isso tb tenho, o pior é fazer uma paralelizacao, onde prai qtos pc's estam a resolver 1 determinado programa, e cada pc faz o k lhe diz respeito...uiui deu me mto trab a fazer...e sei mto bem que nao é perfeito...  :down:

Share this post


Link to post
Share on other sites
vbmaster

aaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhh pois...isso tb tenho, o pior é fazer uma paralelizacao, onde prai qtos pc's estam a resolver 1 determinado programa, e cada pc faz o k lhe diz respeito...uiui deu me mto trab a fazer...e sei mto bem que nao é perfeito...  :down:

Mas se o objectivo é arranjar um número primo cada vez maior, como é que vários computadores podem ajudar?....

só se for tipo:

para o número 3 000 000, um pc1 testa divisões do ]1 ao 750 000]

o pc 2 teste divisões do ]750 000 ao 2 500 000[

e o pc3 testa divisões do ]2 500 000 ao 3 000 000[

so se for assim... mesmo assim não me caber na cabeça conseguir fazer tal coisa... :(

Share this post


Link to post
Share on other sites
saramgsilva

aaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhh pois...isso tb tenho, o pior é fazer uma paralelizacao, onde prai qtos pc's estam a resolver 1 determinado programa, e cada pc faz o k lhe diz respeito...uiui deu me mto trab a fazer...e sei mto bem que nao é perfeito...  :down:

Mas se o objectivo é arranjar um número primo cada vez maior, como é que vários ocmputadores podem ajudar?....

só se for tipo:

para o número 3 000 000, um pc testa divizões do ]1 ao 750 000]

o pc 2 teste divisões do ]750 000 ao 2 500 000[

e o pc3 testa divisões do ]2 500 000 ao 3 000 000[

so se for assim... mesmo assim não me caber na cabeça conseguir fazer tal coisa... :(

agora nao tou com paciencia para estar a explicar....mas tou a pensar no fim da avaliacao dessa CP, colocar aki no forum o k e a computacao paralela...e os meu programas: o serial (k  normalmente fazemos) e o paralelo... mas como o proj desconfia k fui a net, eu ainda nao os posso por... (mas fui eu que fiz ele é k nao acredita... F****D**P**) 😡

so te digo é o codigo esta a ser corrido nos varios pc's ao mm tempo...

o ficheiro que aki colokei no inicio, explica ja isso...

Share this post


Link to post
Share on other sites
Strong

Este ano também tive um projecto que calculava números primos numa linguagem que foi emulada em Scheme, o APL. Este APL que parece coisa do passado numa linha de instruções ( 10 caracteres ) é capaz de calcular desde 0 até N números primos entre outas coisas bonitas. Tipo os digitos de Pi e simular o John Conway's Game of Life matricialmente coisa que nunca vou conseguir implementar devido ao estudo e outras coisas..

Também no futuro vou ter de lidar com essa paralelização que parece ser uma coisa nada trivial =P É um projecto pessoal por isso eu tenho bastante tempo.

Em que linguagens fizeste isso ? A solução mais simples era distribuir números tipo com 4 pcs um ficava com {1,5,9}. O incremento era o número de Pcs. Assim comparava sempre o mesmo range de 4 seguidos ? Nem vou ler esse pdf por falta de tempo mas parece uma coisa moderada de se implementar em perl =D


perl is a prismthrough which chaos breeds order.perfection attained.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.