[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Números Primos





On Sun, 17 Sep 2000, mtu wrote:

> josimat wrote:
> 
> > Olá João!
> > A maneira mais prática que conheço de saber se um número é ou não primo, é
> > por meio de um programa chamado PRIMENUM. Ele diz se um número é primo e,
> > quando não é, fornece também os divisores primos do número, bem como a
> > quantidade desses divisores. Além disso, dá todos os naturais primos menores
> > que um número dado (e a quantidade também).
> > Se quiserem, posso enviar esse programa anexado (não é grande).
> 
> Escrevi esse programinha _porco_ em menos de 5 minutos, mas funciona
> direitinho, mostra todos os divisores do numero q sera testado, no caso de ele
> nao ser primo.
> 
> ----- Corte Aqui -----
> 
> /*
>  *  para compilar: gcc -o primo primo.c
>  *  uso: ./primo <numero para ser testado>
>  *
>  */
> 
> #include <stdlib.h>
> 
> int main(int argc, char *argv[]) {
> 
> int i=atoi(argv[1]);
> int z, h=0;
> 
> for(z=1;z<=i;z++) {
> 
>   if(i%z==0 && z!=1 && z!=i) {
>     printf("nao eh primo, divisivel por %i\n", z);
>     h++;
>   }
> }
> 
>  if(h==0)
>    printf("%i eh primo!\n", i);
> }
> 
> ---- EOF ----

Provavelmente correto (n~ao testei) mas s'o funciona dentro da margem
de um int (<2^32). Existem bibliotecas que permitem manipular
inteiros em precis~ao arbitr'aria como gmp (gnu multi precision).
Existe tamb'em giantint.zip (peguem em
http://www.mat.puc-rio.br/~nicolau/bobo/giantint.zip)
que tem um programa para fatorar inteiros arbitrariamente grandes.

Ali'as, no meu livro com o Gugu h'a alguns programas tb.

[]s, N.