Escreva um programa que calcule os n menores números primos este número n deve ser lido do teclado

Início » Programação em Linguagem C » Programa para determinar se um número é primo em C

Olá pessoal!

Seguindo com nossa série de códigos de exemplo para estudo da linguagem C, vamos ver um pequeno programa que permite descobrir se um número dado é primo ou não.

Como sabemos, um número é primo se ele for divisível (divisão inteira) apenas por si mesmo e por 1. Por exemplo:

  • O número 17 é primo, pois só é divisível por 17 (ele próprio) e por 1.
  • Já o número 18 não é primo, pois além de ser divisível por si mesmo e por 1, também é divisível por outros números, como 2, 3, 6 e 9.

Então, para determinarmos se um dado número é primo, precisamos verificar sua divisibilidade inteira. Para isso, podemos realizar divisões sucessivas do número dado por todos os números a partir de 2 até a metade dele próprio, verificando o resto da divisão. Se o resto for 0 em algum momento, significa que houve uma divisão inteira por um valor diferente de 1 e do número em si, e o número não é primo. Caso contrário, se o resto for diferente de 0 em todas as divisões, o número é primo.

A seguir, temos o código em C que implementa essa função:

Código

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

Neste programa simples, declaramos três variáveis: num, i e resultado, que serão usadas para receber o número digitado pelo usuário, contador no processo de verificação de número primo, e para receber o resultado do cálculo, respectivamente.

Usamos as instruções #include <locale.h> e setlocale(LC_ALL,” “) para oferecer suporte ao idioma português na aplicação, de modo a exibir corretamente caracteres especiais e acentuados. Mas ela não é essencial para a execução da aplicação.

A figura a seguir mostra a execução do programa, verificando se um número é primo ou não:

Escreva um programa que calcule os n menores números primos este número n deve ser lido do teclado

É isso aí pessoal!

Até o próximo tutorial!

Recomendado: Arrays em C – Declaração, Inicialização e Atribuição de valores

14 Comentários em Programa para determinar se um número é primo em C

Escreva um programa que calcule os n menores números primos este número n deve ser lido do teclado

LISTA 3 DE EXERCÍCIOS – ESTRUTURAS DE REPETIÇÃO Escreva um programa em C que realize o produto de A (número real) por B (número inteiro), ou seja, A * B, através de adições (somas). Esses dois valores são passados pelo usuário através do teclado. Escreva um programa que leia um inteiro e imprima seu fatorial, juntamente com os termos multiplicados. Abaixo apresentamos um exemplo de saída do programa: Digite um número: 3 3! = 3 x 2 x 1 = 6 Escreva um programa que leia um inteiro e determine todos os seus divisores. Escreva um programa que leia um inteiro e imprima se o número digitado é primo ou não (o número primo pode ser dividido apenas por 1 e por ele mesmo). Escreva um programa que determine os N-menores números primos. O valor N deve ser lido do teclado. O valor de π pode ser calculado a partir da expressão abaixo. Faça um programa que calcule o valor de π obtendo acima de 15 casas decimais de precisão (usando 100.000 termos da série S você deve obter esta precisão). Para este programa, você deverá conhecer a função pow(..) presente na biblioteca math.h e saber imprimir 15 casas decimais através da função printf. http://pt.wikipedia.org/wiki/Math.h http://www.cplusplus.com/reference/clibrary/cstdio/printf/ Construa um programa em C para calcular a média de valores PARES e ÍMPARES, que serão digitados pelo usuário. Ao final o algoritmo deve mostrar estas duas médias. O algoritmo deve mostrar também o maior número PAR digitado e o menor número ÍMPAR digitado. Para finalizar o usuário irá digitar um valor negativo. Implementar um algoritmo em C para calcular o sen(X). O valor de X deverá ser digitado em graus. O valor do seno de X será calculado pela soma dos 200 primeiros termos da série a seguir:

Escreva um programa que calcule os n menores números primos este número n deve ser lido do teclado
Escreva um programa que calcule os n menores números primos este número n deve ser lido do teclado
Escreva um programa que calcule os n menores números primos este número n deve ser lido do teclado

Escreva um programa que calcule os n menores números primos este número n deve ser lido do teclado

LISTA 3 DE EXERCÍCIOS – ESTRUTURAS DE REPETIÇÃO 1. Escreva um programa em C que realize o produto de A (número real) por B (número inteiro), ou seja, A * B, através de adições (somas). Esses dois valores são passados pelo usuário através do teclado. int main() { int a, b, i, c; c=0; printf ("digite um número: "); scanf ("%d", &a); printf ("digite o número de vezes que ele deve ser multiplicado: "); scanf ("%d", &b); for (i=0; i<b; i++) { c=c+a; } printf ("o resultado é: %d ", c); getch(); } 2. Escreva um programa que leia um inteiro e imprima seu fatorial, juntamente com os termos multiplicados. Abaixo apresentamos um exemplo de saída do programa: Digite um número: 3 3! = 3 x 2 x 1 = 6 int main() { int n,i, fatorial; printf ("digite um número: "); scanf ("%d", &n); printf ("%d!=", n); fatorial=1; for (i=n; i>=2; i--) { printf ("%dx", i); fatorial = fatorial*i; } printf ("1= %d", fatorial); getch(); } 3. Escreva um programa que leia um inteiro e determine todos os seus divisores. int main() { int x, div; printf ("digite um número: "); scanf ("%d", &x); div=1; while (div<=x) { if (x % div == 0) { printf ("%d ",div); } div++; } getch(); } 4. Escreva um programa que leia um inteiro e imprima se o número digitado é primo ou não (o número primo pode ser dividido apenas por 1 e por ele mesmo). int main() { int n, i, divisores_encontrados; printf ("digite um número: "); scanf ("%d", &n); i=1; divisores_encontrados=0; while (i<=n) { if (n % i == 0) divisores_encontrados++; i++; } if (divisores_encontrados==2) printf ("primo"); else printf ("Não primo"); getch(); } 5. Escreva um programa que determine os N-menores números primos. O valor N deve ser lido do teclado. int main() { int N, cont,i,j; cont=0; printf ("digite um numero: "); scanf ("%d",&N); for (i=1; i<=N; i++) { cont=0; for (j=1;j<=i;j++) { if (i%j==0) { cont++; } } if (cont ==2) { printf ("%d ",i); } } getch(); } 6. O valor de π pode ser calculado a partir da expressão abaixo. Faça um programa que calcule o valor de π obtendo acima de 15 casas decimais de precisão (usando 100.000 termos da série S você deve obter esta precisão). Para este programa, você deverá conhecer a função pow(..) presente na biblioteca math.h e saber imprimir 15 casas decimais através da função printf. http://pt.wikipedia.org/wiki/Math.h http://www.cplusplus.com/reference/clibrary/cstdio/printf/ int main () { double s=0; int den; float sinal =1; for (den=1; den<30000; den=den+2) { s = s + sinal/pow(den, 3); sinal = sinal * -1; double pi = pow (s*32, 1.0/3.0); printf("%.20lf\n", pi); } getch(); } 7. Construa um programa em C para calcular a média de valores PARES e ÍMPARES, que serão digitados pelo usuário. Ao final o algoritmo deve mostrar estas duas médias. O algoritmo deve mostrar também o maior número PAR digitado e o menor número ÍMPAR digitado. Para finalizar o usuário irá digitar um valor negativo. Int main() { int x, somapar,somaimpar,maior,menor,totpar,totimpar; somapar=somaimpar=totpar=totimpar=0; menor=200000; maior=-1; do { printf ("digite um numero:"); scanf ("%d",&x); if (x%2!=0 && x>=0) { totimpar++; somaimpar= somaimpar+x; if (menor>x) menor=x; } if (x%2==0 && x>=0) { totpar++; somapar= somapar+x; if (maior<x) maior=x; } }while (x>=0); printf ("media dos numeros pares: %f",(float) somapar/totpar); printf ("media dos numeros impares: %f",(float) somaimpar/totimpar); printf ("maior numero par: %d",maior); printf ("menor numero impar: %d",menor); getch(); } 8. Implementar um algoritmo em C para calcular o sen(X). O valor de X deverá ser digitado em graus. O valor do seno de X será calculado pela soma dos 200 primeiros termos da série a seguir: int main() { float x,deno,fat,soma,fim,a; float mult=1; soma=0; int cont=0; printf("Digite o valor do angulo: "); scanf("%f",&x); a=x; x = x*(3.14/180); for(deno=3;deno<=20;deno=deno+2) { mult=1; for(fat=2;fat<=deno;fat++) { mult= mult*fat; } if(cont%2==0) { soma=soma - (pow(x,deno)/mult); } Else { soma=soma + (pow(x,deno)/mult); } cont++; } fim=x+soma; printf("O valor do Seno de %f e: %.3f",a,fim); getch(); }