Jump to content
Fórum Script Brasil
  • 0

mostrar o menor primo maior que n


Question

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

 

Edited by jeanzin001
erro portugues
Link to post
Share on other sites

4 answers to this question

Recommended Posts

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

 

Edited by Hazzu
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148692
    • Total Posts
      644525
×
×
  • Create New...