Ir ao conteúdo
  • Cadastre-se

Achar numero primos em C


FLIP ADS

Posts recomendados

Gente estou começando o curso de analise de sistemas e já tenho um dever pa casa que não estou conseguindo fazer, sei que poder ser basico mais eu não sei, num consigo fazer a logica.

Eis o problema

Faça um programa em linguagem C que receba n numeros naturais entre 1 e 100 e exiba todos os valores primos.

Gente o maximo que consegui foi isso mais não compila....



#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

int indx, indx1, n=1;

for (indx=1;indx<=100;indx++){
n++;


for(indx1=2; indx1<=(int)(n/2); indx1++){
if((n%indx1)==0){
printf("\n%i not primo", n);
break;
}


}

if((n%indx1)==1){
printf("\n%i numero primo", n);
}
}
return 0;
}

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Seu código esta um pouco errado, mas com tempo você aprende, o código abaixo esta correto mas tente entender não só copie, se tiver dúvidas é só perguntar.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int n, num, k, primo;

for(n=1; n<=100; n++)
{
scanf("%d",&num);
system ("cls");
primo=0;
for(k=1; k<=num; k++)
if((num%k)==0)
primo++;
if(primo>2)
printf("%d nao e primo\n", num);

else
printf("%d e primo\n", num);
}
}

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Amigo você poderia me explicar a variavel (num), pelo que eu vi ela não tem nenhum valor, e não é incrmentada...então ela é zero...

isso que não estou intendenu....

ajuda ai

no meu aqui ele nem roda...num sei o porque....acho que é por causa desse scan no começo

esquece rodou sim....

ja entendi o num eu so digitar...

mais queria que ele analizasse o numero do 1 ao 100 automatico....

for(num=0;num<100;num++) ou num ++;

heim heim

Link para o comentário
Compartilhar em outros sites

Veja bem no algoritmo anterior o scanf pega os valores vindo do teclado, mas como seu enunciado especifica um intervalo de 1 a 100, o algoritmo ficaria assim:

#include <stdio.h>
#include <stdlib.h>

int main(){
int n, k, primo;

for(n=1; n<=100; n++){
primo=0;
for(k=1; k<=n; k++)
if((n%k)==0)
primo++;
if(primo>2)
printf("%d nao e primo\n", n);
else
printf("%d e primo\n", n);
}
return 0;
}

O 1º laço especificara o intervalo de 1 a 100 que será a quantidade de números.

O 2º laço conta o numero de divisões exata que um número(n) possui.

Obs: Um número primo possui apenas duas divisões exata, divisão por 1 e por ele mesmo, com exceção do número 1.

Ex:

n=1

1%1==0 primo

n=2

2%1==0, 2%2==0 primo

n=3

3%1==0, 3%2!=0, 3%3==0 primo;

n=4

4%1==0, 4%2==0, 4%3!=0 4%4==0 não é primo;

E assim em diante.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 6 anos depois...
  • 4 meses depois...
1 hora atrás, Xacarami disse:

Eu não fiz ciência da computação, então não sei com que programa eu abro este tipo de arquivo (C, C++, C#) alguém me da uma luz?

 

Há varias IDE's, como: Codebloks, Dev++, Netbens, ...

 

É possível também rodar online através de: CodeChef IDE, CodePad, Ideone, OnlineCompiler, ...

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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