Ir ao conteúdo

Posts recomendados

Postado

O único problema é com o número 4, o programa diz que é primo!?

Além disso, como posso fazer o programa parar quando o cont ser maior que 1, para não desperdiçar processamento?

 

#include <stdio.h>
#include <conio.h>
#include <math.h>

int main()
{
int n,i,result,cont;
cont=0;
printf("Digite um numero positivo\n");
scanf("%d",&n);
    if(n>2){
        for(i=2;i<n;i++){
            result=n%i;
            if(result==0)
                cont++;
        }
    }
    if(cont>1)
        printf("%d nao é primo\n",n);
    else
        printf("%d é primo\n",n);
getch();
return 0;
}
 

 

Desde já, agradeço pela atenção.

primo.jpg

Postado

matematicamente falando o único numero par que é primo é o numero "2",  mudei o seu código para mostrar se é primo ou nao de forma correta.

 

#include <stdio.h>
#include <conio.h>
#include <math.h>

int main()
{
    int n,i, cont=0;

    printf("Digite um numero positivo\n");
    scanf("%d",&n);

    if(n>1)
    {

        for(i=1; i<= n; i++)
        {
            if(n % i == 0) cont++;
        }
    }

    if(cont ==2)
        printf("%d e primo\n",n);
    else
        printf("%d nao é primo\n",n);
    getch();
    return 0;
}

 

Postado
11 horas atrás, Benjamin Breeg disse:

matematicamente falando o único numero par que é primo é o numero "2",  mudei o seu código para mostrar se é primo ou nao de forma correta.

 


#include <stdio.h>
#include <conio.h>
#include <math.h>

int main()
{
    int n,i, cont=0;

    printf("Digite um numero positivo\n");
    scanf("%d",&n);

    if(n>1)
    {

        for(i=1; i<= n; i++)
        {
            if(n % i == 0) cont++;
        }
    }

    if(cont ==2)
        printf("%d e primo\n",n);
    else
        printf("%d nao é primo\n",n);
    getch();
    return 0;
}

Fiz as mudanças, o problema do 4 foi solucionado mas agora o 2 está como não é primo.

 

Postado

Cara confere direitinho, aqui esta funcionando corretamente, testei vários números  de acordo com uma tabela e bateu tudo certinho.


A lógica funciona assim, um numero é primo se ele for divisível apenas por si próprio e por um, o loop vai dividir todos os números entre o numero digitado e 1 pra descobrir quantos divisores o numero tem, ai entra na regrinha do inicio, se ele for divisível apenas por 2 números que nao sobra resto, é um numero primo.

 

Cara estude a teoria das operações matemáticas que você vai trabalhar, apesar de muitos falarem que programação nao precisa de matemática, nao tem como bolar algoritmos como este se você nao sabe ou esqueceu a teoria dos números primos. Se não tem paciência pra ler no YouTube é cheio de pessoas que ensinam matemática, posso indicar o canal do marcos aba. É muito bom

 

http://www.planetaescuro.com/numeros-primos/

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...