Ir para conteúdo
Fórum Script Brasil
  • 0

mostrar o menor primo maior que n


jeanzin001

Pergunta

Olá pessoal estou com um problema, tenho que calcular o seguinte programa:  dado um inteiro calcule o menor primo maior que "a" ,  fiz u programa mas ele só mostra se o número é primo ou não.

#include<stdio.h>
#include <locale.h>
 
int main() {
 setlocale(LC_ALL, "");
 int num, i, resultado = 0;
 
 printf("Digite um número: ");
 scanf("%d", &num);
 
 for (i = 2; i <= num / 2; i++) {
    if (num % i == 0) {
       resultado++;
       break;
    }
 }
 
 if (resultado == 0)
    printf("%d é um número primo\n", num);
 else
    printf("%d não é um número primo\n", num);
 
 return 0;
}

 

Editado por jeanzin001
erro portugues
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
//Programa: Primo Próximo
//Função: Obter o próximo primo a partir de um número inserido pelo usuário
//Autor: Hazzu#7444
//Data: 04/06/2020

//Cabeçalhos
#include <stdio.h>
#include <locale.h>
#include <math.h>

//Assinatura das funções
int primo(int n);

//Função principal
int main(){
    //Declaração de variáveis
    int n, p;
    
    setlocale(LC_ALL, "Portuguese");    //Configurando terminal para português
	
	//Apresentação
	printf("------ Primo Próximo ------\n");
	printf("Olá, esse programa irá calcular o número primo imediatamente superior ao valor informado.\n");

	//Solicitando número
	printf("-Digite um número:\n");
	scanf("%d", &n);
    
	//Buscando próximo primo
	p = n;
	do{
		p+=1;
	} while(!primo(p));
	
	//Saida de dados
	printf("O número primo imediatamente superior a %d é %d!\n", n, p);
	
    //Encerrando programa
    return 0;
}

//Função que determina se um número inteiro é primo
int primo(int n){
	//Declaração de variáveis
	int i, limit;

	n = abs(n);	//Possibilitando trabalho com números negativos
	limit = (int) sqrt(n);	//Basta testar divisores até a raiz do número
	if (n > 2){
		//Procurando divisores
		for (i=2; i <= limit; i++){
			if (n%i == 0) return 0;		//False
		}
	}
	else if (n == 2){
		return 1;		//True
	}
	else{
		return 0;	//False
	}
	return 1;		//Não encontrou divisores -> True
}

 

Editado por Hazzu
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...