[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.