FORUM DARKERS

Tecnologia & Informática => Programação => C/C#/C++ => Topic started by: nibbles on 02 de October , 2006, 06:21:38 PM

Title: Vendo se um número é primo ou não.
Post by: nibbles on 02 de October , 2006, 06:21:38 PM
segue aí um código simplesinho que fiz... não está comentado porque eu sou preguiçoso em comentar... uma má prática, não façam isso ahsdhusad
um número primo é aquele que só é divisivel por 1 e por ele mesmo... este programa testa todos os numeros até a metade dele, se nenhum resultado for 0, descobrimos que o número é primo.

ps: Qualquer crítica, elogio, sugestão, xingamento.. enfim, qualquer coisa, sintam-se livres para postar
hauhuaua

#include
/* Programa que descobre se um numero é primo ou não. */
int teste_primo(int num, int *prim);

int main ()
{
    int numero, primo=0;
   
    puts ("Digite um numero para descobrirmos se é primo ou nao: ");
    scanf("%d", &numero);
    if (numero==(1||2||3))
    {           
       printf ("O numero %d eh primo", numero);
       getchar();
       getchar();
       return 0;
    }   
    teste_primo(numero, &primo);
    if (primo)
       printf ("O numero %d eh primo.\n\n", numero);
    else
        printf ("Onumero %d nao eh primo.\n\n", numero);   
    getchar ();
    getchar();
    return 0;
}

int teste_primo(int num, int *prim)
{
    int cont=2, resto;
    for (resto=num%cont ; resto!=0 && cont<=num/2 ; resto=num%++cont)
    {
        if (cont==num/2)
           *prim=1;
    }
}                 
Title: Re: Vendo se um número é primo ou não.
Post by: vuln on 02 de October , 2006, 06:23:44 PM
Bom código. Lembro-me uma vez quando quase queimo os neurônios para fazer um algoritmo que satisfazesse esse desafio. Enfim, graças a Deus consegui hehehe.

Até mais.
Title: Re: Vendo se um número é primo ou não.
Post by: _Dr4k0_ on 02 de October , 2006, 06:34:06 PM
Quote from: "vuln"Bom código. Lembro-me uma vez quando quase queimo os neurônios para fazer um algoritmo que satisfazesse esse desafio. Enfim, graças a Deus consegui hehehe.

Até mais.

Voce codou uma vez a sequencia fibonacci até 1000 não foi?
Se foi você e ainda tiver o Code por favor poste que estou interessado
Title: Re: Vendo se um número é primo ou não.
Post by: vuln on 02 de October , 2006, 08:05:59 PM
Não foi bem assim. O código na realidade checava todos os números até uma variável X e informava delas quais pertenciam a sequência de fibonacci. Desse modo, ela imprimia somente os números sendo calculados e a quantidade de números que pertenciam a sequência. Se não me falha a memória, de 0 a 1000 são 40 e poucos (Alguns podem achar que é mais, mas na realidade é esse valor mesmo).

Até mais. Vou procurar o código por aqui.. e se achar coloco aqui mesmo o link hospedado.

Abraços
Title: Re: Vendo se um número é primo ou não.
Post by: nibbles on 02 de October , 2006, 11:03:52 PM
vuln, voce tinha me dito de 1 até 1.000.000 se não me engano
confirme aí :D
Title: Re: Vendo se um número é primo ou não.
Post by: vuln on 02 de October , 2006, 11:07:46 PM
Acho que não, é possível mas na minha memória creio que seja de 0 a 1.000 mesmo. Bem, irei procurar quando achar confirmamos ;).
Abração pra vocês meus brothers.
Title: Re: Vendo se um número é primo ou não.
Post by: nibbles on 02 de October , 2006, 11:45:04 PM
minha memória > sua memória.
Title: Re: Vendo se um número é primo ou não.
Post by: vuln on 03 de October , 2006, 12:03:26 AM
..........
Obrigado por espalhar que minha memória é deficiente.
 ;D abração
Title: Re: Vendo se um número é primo ou não.
Post by: Anonymous on 03 de October , 2006, 12:37:13 AM
eu tinha esse codigo antes de formtara (para um trabalho de algebra :/) se n for perguntar demais já perguntando, pq vcs querem?
Title: Re: Vendo se um número é primo ou não.
Post by: vuln on 03 de October , 2006, 06:48:09 AM
O da sequência de Fibonacci? Apenas porque foi um código que fiz e o cara tem certeza ai que ainda deve está pelos meus dados aqui no PC. Segundo porque pelo visto querem confirmar mesmo qual é o número final do range e quantos numeros da sequencia de fibonacci existe entre eles.
;)

Abraços.
Title: Re: Vendo se um número é primo ou não.
Post by: Anonymous on 03 de October , 2006, 02:47:08 PM
sobre os primos, vcs procurarem sobre o crivo de erastótenes e deverao achar coisas interessantes :)
Title: Re: Vendo se um número é primo ou não.
Post by: vuln on 03 de October , 2006, 03:51:50 PM
Perdão amiga, mas creio que nesse momento minha semântica falou comigo. A respeito do algoritmo, você se referiu ao que?
Title: Re: Vendo se um número é primo ou não.
Post by: nibbles on 03 de October , 2006, 06:42:14 PM
só adicionou conteúdo, nem todos falam de você vuln, seu egocêntrico :P
asidhuasdasd =*
Title: Re: Vendo se um número é primo ou não.
Post by: vuln on 03 de October , 2006, 10:14:20 PM
Não, não. Você entendeu errado. Quis me referir a como ele tratou o algoritmo. Eu entendi que ele quis passar que não existe algoritmo para fazer isso. Como é algo meio insano de se dizer, eu espero que ele explique o que realmente quis dizer antes que alguém julgue precipitadamente.

Abraços
Title: Re: Vendo se um número é primo ou não.
Post by: Anonymous on 11 de October , 2006, 01:14:05 PM
seu programa tem 1 erro nessa linha
if (numero==(1||2||3))

se você digitar 2 ele irá falar que 2 não é primo...
Title: Re: Vendo se um número é primo ou não.
Post by: nibbles on 11 de October , 2006, 02:17:22 PM
tem razão... segue abaixo o código funcionando... e obrigado :)

#include
/* Programa que descobre se um numero é primo ou não. */
int teste_primo(int num, int *prim);

int main ()
{
    int numero, primo=0;
   
    puts ("Digite um numero para descobrirmos se é primo ou nao: ");
    scanf("%d", &numero);
    if (numero==1||2||3)
    {           
       printf ("O numero %d eh primo", numero);
       getchar();
       getchar();
       return 0;
    }   
    teste_primo(numero, &primo);
    if (primo)
       printf ("O numero %d eh primo.\n\n", numero);
    else
        printf ("Onumero %d nao eh primo.\n\n", numero);   
    getchar ();
    getchar();
    return 0;
}

int teste_primo(int num, int *prim)
{
    int cont=2, resto;
    for (resto=num%cont ; resto!=0 && cont<=num/2 ; resto=num%++cont)
    {
        if (cont==num/2)
           *prim=1;
    }
}       
Title: Re: Vendo se um número é primo ou não.
Post by: insanity on 11 de October , 2006, 02:25:37 PM
Cadê os comentarios no codigo? ( uhauhuhauhuha)

// insanity
Title: Re: Vendo se um número é primo ou não.
Post by: rog on 11 de October , 2006, 03:42:54 PM
ae vuln

eu acho que o cara tentou dizer que nao existe algoritmo que deteta se um numero e primo

rog
Title: Re: Vendo se um número é primo ou não.
Post by: nibbles on 11 de October , 2006, 05:46:15 PM
Quote from: "insanity"Cadê os comentarios no codigo? ( uhauhuhauhuha)

// insanity

sahdisiuada :X
antes do codigo eu expliquei tá!
asdiuhasidhaiusdasd :P
Title: Re: Vendo se um número é primo ou não.
Post by: Anonymous on 12 de October , 2006, 12:14:51 AM
Cara eu nem sei quando fiz isso mas tava nos codes aqui ele mostra os numeros primos ate o numero q vc der entrada.
Diferencial é q ele verifica em que numero e terminado, numeros terminados em 2,4,5,6,8,0 nao sao primos =~

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>

int primo(char *numero);
int noprimo(char *num,char *ch);

int main() {
    time_t stimer,etimer;
    struct tm *ptm;
    char numero[12],numerotemp[12];
    long int x;
    printf("Entre com um numero: ");
    scanf("%12s",numero);
    stimer=time(0);
    for(x=1;x<=atoi(numero);x++) {
        itoa(x,numerotemp,10);
        if(primo(numerotemp)) printf("%s\n",numerotemp);
    }
    etimer=time(0)-stimer;
    ptm=localtime(&etimer);
    printf("\nFoi necessario %ds para realizar o calculo\n",ptm->tm_sec);
    system("pause");
return(0);
}

int noprimo(char *num,char *ch) {
for(num+=strlen(num);*ch;ch++)
if (*ch==*num) return(0);
return(1);

}
int primo(char *numero) {
    int x;
    if (strlen(numero) > 1 )
        if (numero[strlen(numero)] == '2' || numero[strlen(numero)] == '4' || numero[strlen(numero)] == '5' || numero[strlen(numero)] == '6' || numero[strlen(numero)] == '8' || numero[strlen(numero)] == '0' )
        return(0);
    for(x=2;x<atoi(numero);x++)
        if(!(atoi(numero)%x)) return(0);
    return(1);
}
Title: Re: Vendo se um número é primo ou não.
Post by: Anonymous on 12 de October , 2006, 12:45:51 AM
Quote from: "rog"ae vuln

eu acho que o cara tentou dizer que nao existe algoritmo que deteta se um numero e primo

rog



isso.. vc tem q testar os divisores até ele, é isso que eu quis dizer, claro q existem N técnicas de se fazer isso rápido, mas elas usam o msm conceito (ver se existe algum divisor exato ou não)....

entendeu?
Title: Re: Vendo se um número é primo ou não.
Post by: rog on 12 de October , 2006, 01:11:42 AM
isso eu posso affirmar :

nao existe um algo/formula que possa determinar se um numero  do 0 ao infinito e primo

quem achar com certeza ficara muito rico

rog