Ir ao conteúdo
  • Cadastre-se

Extrair o Menor Primo


DeanDes

Posts recomendados

O caso é que não estou conseguindo extrair o menor número primo

tentei usar como exemplo alguns modelos que vi em outros casos, mas a lógica não bate aqui... 

Se alguém puder dar alguma luz, posso estar bobeando, mas já gastei alguma e alguma tentativa disso dar certo e nada, rsrs.

Obrigado!

#include <stdio.h>#include <stdlib.h>int main () {    int x, n1, n2, eprimo, maiorPrimo=0, menorPrimo=0;        printf ("Digite um numero: ");    scanf ("%d",&n1);        printf ("Digite um numero maior que o primeiro: ");    scanf ("%d",&n2);        for (x=n1; x<n2; x++){		 		          eprimo=1;                                                if (x%2==0){            eprimo=0;          }                if(eprimo==1){              printf (" E primo %d\n",x);                               if (x > maiorPrimo){                    maiorPrimo = x;				                }                                        }    }		                             printf ("maior primo e %d\n", maiorPrimo);                  printf ("menor primo e %d\n",menorPrimo); system ("pause"); return 0;   }
Link para o comentário
Compartilhar em outros sites


#include <stdio.h>

#include <stdlib.h>

int main () {

int x, n1, n2, maiorPrimo=1, menorPrimo=99999999999;

printf ("Digite um numero: ");

scanf ("%d",&n1);

printf ("Digite um numero maior que o primeiro: ");

scanf ("%d",&n2);

for (x=n1; x<=n2; x++){

if(x%2==1){

printf ("%d é primo\n",x);

if (x <= menorPrimo){

menorPrimo = x;

}

if (x >= maiorPrimo){

maiorPrimo = x;

}

}

}

printf ("maior primo e %d\n", maiorPrimo);

printf ("menor primo e %d\n",menorPrimo);

system ("pause");

return 0;

}

Link para o comentário
Compartilhar em outros sites

Pelo que entendi o problema consiste em pegar dois números e ver qual o menor número primo e o maior numero primo no intervalo entre esses dois números, é isso?

Crie uma função que retorna se um número é primo ou não, depois faça um FOR simples com o intervalo entre os números, testando eles com a tua função:

#include <stdio.h>#include <stdlib.h>int primoOuNao(int x) {    // testa aqui se x é divisível apenas por ele mesmo    // se ele for menor que 2, ou se for divisível por algum número, retorna 0    // se ele não for menor que 2, nem for divisível por nenhum número menor que ele,    // então a função retorna 1 no final	int i;	if (x < 2) return 0;	for (i = 2; i < x; i++)		if (x % i == 0) return 0;	return 1;}int main () {	int x, n1, n2, maiorPrimo=0, menorPrimo=0;	printf ("Digite um numero: ");	scanf ("%d",&n1);	printf ("Digite um numero maior que o primeiro: ");	scanf ("%d",&n2);	// menor primo	for (x = n2 - 1; x > n1; --x)		if (primoOuNao(x)) menorPrimo = x;	// maior primo	for (x = n1 + 1; x < n2; ++x)		if (primoOuNao(x)) maiorPrimo = x;	printf ("maior primo e %d\n", maiorPrimo);	printf ("menor primo e %d\n", menorPrimo);	return 0;}
Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!