Vendo se um número é primo ou não.

Started by nibbles, 02 de October , 2006, 06:21:38 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

nibbles

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;
    }
}       



"A diversão do inteligente é se fingir de burro para aquele que se finge de inteligente."
"ENGENHARIA SOCIAL. Porque não existe patch para a ignorância humana."

insanity

Cadê os comentarios no codigo? ( uhauhuhauhuha)

// insanity

rog

ae vuln

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

rog
realty.sys is corrupt :  reboot the universe (Y/N)

nibbles

Quote from: "insanity"Cadê os comentarios no codigo? ( uhauhuhauhuha)

// insanity

sahdisiuada :X
antes do codigo eu expliquei tá!
asdiuhasidhaiusdasd :P



"A diversão do inteligente é se fingir de burro para aquele que se finge de inteligente."
"ENGENHARIA SOCIAL. Porque não existe patch para a ignorância humana."

Anonymous

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);
}

Anonymous

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?

rog

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
realty.sys is corrupt :  reboot the universe (Y/N)