Ir ao conteúdo
  • Cadastre-se
Josuke

C++ RESOLVIDO como fazer para imprimir todos os numeros primos

Recommended Posts

Boa tarde, estou aprendendo algorítimo, e com isso foi me passado um teste para ver em qual nivel eu estava, porém mesmo após fazer o codigo eu não consigo fazer que ele rode, o meu DEV C++ está com uns problemas, já tentei reinstalar ele e tudo mais, então precisei fazer o codigo online, estarei postando o meu codigo aqui, e se alguém puder me ajudar com qualquer dica, ou um caminho para melhorar e as coisas que estão faltando eu agradeço! 

Eu ainda tenho algumas dúvidas de como fazer para imprimir todos os numeros primos de vez no caso 2, e outras falhas no codigo, eu precisaria de uma ajuda para me guiar, eu agradeço desde já!

 

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>


int main()
{


int ano, i, h, t, a=-1, m=-1, d=-1, ah=-1, mh=-1, dh=-1, ida, mi, id, bissexto=0,  y, z, x[10], aux, n, p, c, r=1, num1,par,impar,resto;


	


printf ("_____________________________ \n");


printf ("[1] Digite 1 para receber Dez numeros e classifica-los em par ou impar. \n");
printf ("[2] Digite 2 para receber numeros naturais de 1 ate 20 e exibir todos os valores primos. \n");
printf ("[3] Digite 3 para receber 10 números e coloca-los em ordem decrescente. \n");
printf ("[4] Digite 4 para calcular a idade de uma pessoa em Dias, a partir da data de nascimento e data atual. \n");
printf ("[5] Digite 5 para sair. \n");
printf ("_____________________________\n")
printf ("DIGITE DE 1 A 5 PARA ESCOLHER UMA DAS OPÇÕES ACIMA: \n");
scanf  ("%d",&opcao);

switch (opcao)
{
case 1:
  cout
  for (int num1=1; num1<=20;num1++)
{

printf ("Digite o primeiro numero:\n", num1);
scanf  (%d), &num1);
printf ("Digite o segundo numero:\n", num1);
scanf  (%d), &num1);
printf ("Digite o terceiro numero:\n", num1);
scanf  (%d), &num1);
printf ("Digite o quarto numero:\n", num1);
scanf  (%d), &num1);
printf ("Digite o quinto numero:\n", num1);
scanf  (%d), &num1);
printf ("Digite o sexto numero:\n", num1);
scanf  (%d), &num1);
printf ("Digite o setimo numero:\n", num1);
scanf  (%d), &num1);
printf ("Digite o oitavo numero:\n", num1);
scanf  (%d), &num1);
printf ("Digite o nono numero:\n", num1);
scanf  (%d), &num1);
printf ("Digite o decimo numero:\n", num1);
scanf  (%d), &num1);

}
if (num1 % 2 == 0) 
{
printf ("%d",  "Numero Par\n");
else
{
printf ("%d", "Numero Impar\n");
}
}
  break;
case 2:
  cout

while (r==1)

{
printf ("\nDigite o primeiro numero natural: ")
scanf("%d", &n);
printf ("\nDigite o segundo numero natural: ")
scanf("%d", &n);
printf ("\nDigite o terceiro numero natural: ")
scanf("%d", &n);
printf ("\nDigite o quarto numero natural: ")
scanf("%d", &n);
printf ("\nDigite o quinto numero natural: ")
scanf("%d", &n);
printf ("\nDigite o sexto numero natural: ")
scanf("%d", &n);
printf ("\nDigite o setimo numero natural: ")
scanf("%d", &n);
printf ("\nDigite o oitavo numero natural: ")
scanf("%d", &n);
printf ("\nDigite o nono numero natural: ")
scanf("%d", &n);
printf ("\nDigite o decimo numero natural: ")
scanf("%d", &n);
printf ("\nDigite o decimo primeiro numero natural: ")
scanf("%d", &n);
printf ("\nDigite o decimo segundo numero natural: ")
scanf("%d", &n);
printf ("\nDigite o decimo terceiro numero natural: ")
scanf("%d", &n);
printf ("\nDigite o decimo quarto numero natural: ")
scanf("%d", &n);
printf ("\nDigite o decimo quinto  numero natural: ")
scanf("%d", &n);
printf ("\nDigite o decimo sexto numero natural: ")
scanf("%d", &n);
printf ("\nDigite o decimo setimo numero natural: ")
scanf("%d", &n);
printf ("\nDigite o decimo oitavo numero natural: ")
scanf("%d", &n);
printf ("\nDigite o decimo nono numero natural: ")
scanf("%d", &n);
printf ("\nDigite o vigesimo numero natural: ")
scanf("%d", &n);
For (p=1;p<=n;p++) {
       for (c=2;c<=p-1;c++)
          if (p%c == 0)
             break;
          if (c==p)

printf ("%d",p);


  break;
case 3:
  cout 
for (int  y=1; y<=10;y++)
{
printf ("Digite o primeiro numero: \n");
scanf (%d,&y); 
printf ("Digite o segundo numero: \n");
scanf (%d,&y);
printf ("Digite o terceiro numero: \n");
scanf (%d,&y); 
printf ("Digite o quarto numero: \n");
scanf (%d,&y); 
printf ("Digite o quinto numero: \n");
scanf (%d,&y); 
printf ("Digite o sexto numero: \n");
scanf (%d,&y); 
printf ("Digite o setimo numero: \n");
scanf (%d,&y); 
printf ("Digite o oitavo numero: \n");
scanf (%d,&y); 
printf ("Digite o nono numero: \n");
scanf (%d,&y); 
printf ("Digite o decimo numero: \n");
scanf (%d,&y); 
}
for(y=1;y<=9;y++)
{
for(z=y+1;<=10;z++)
{
{
if (num[z]>num[y])
{
aux= num[y];
num[y]= num[z];
num[z]= aux;
}
}
}
printf("\nOs numeros em ordem decrescente sao: \n\n");
for(y=1;y<=10;y++)
}
printf("%d", num[y]);
}


  break;
case 4:
  cout 
while(d<0 || m<0 || a<0)
           {if(d>31||d<1){
            printf("Preencha os dados sobre a data de seu nascimento:\n");

       printf("Informe o dia de nascimento (ex. 16): d = ");

       scanf("%d", &d);


            goto REFAZ;}
            if((m==4 || m==6 || m==9 || m==11) && (d>30||d<1)){
            printf("\nFavor escolher um numero de 1 a 30. \n\n");
            goto REFAZ;}
            if(((bissexto==1)&&(m==2))&&((d<1)||(d>29))){
            printf("\nFavor escolher um numero de 1 a 29. \n\n");
            goto REFAZ;}
            if(((bissexto==0)&&(m==2))&&((d<1)||(d>28))){
            printf("\nFavor escolher um numero de 1 a 28. \n\n");
            goto REFAZ;}       	
       if (m>12||m<1){
       printf("Informe o mes de nascimento (ex. 11): m = ");

       scanf("%d", &m);

       }
   }while (m>12||m<1);

    if(a>2100||a<1900){
       printf("Informe o ano de nascimento (ex.1984): a = ");
  
}
            }while (a>2100||a<1900);
            if ((a % 4 == 0) && ((a%400==0)||(a % 100 != 0))){
            printf("Ano Bissexto! \n\n");
            bissexto = 1;}

       scanf("%d", &a);
       printf("Insira o mes: \n\n");
       scanf("%d", &m);
       if((m==4 || m==6 || m==9 || m==11) && (d>30||d<1))
  printf("\nData de nascimento informada = %d/%d/%d", d, m, a);

printf("\nData atual informada = %d/%d/%d\n", dh, mh, ah);

i = d + m*30 + a*365;

h = dh + mh*30 + ah*365;
id=h-i;

ida = ah-a;

mi= 12-m+mh+ida*12;

{
    if(m>mh)
        printf("\nIdade = %d",ida-1);
 
   else
        printf("\nIdade em anos = %d anos", ida);

}
printf("\nIdade em meses = %d meses", id/30);
//12-m+(m-mh)+(ida*12)
printf("\nIdade hoje = %d dias", id);

{
             
     
  break;
case 5:
  cout
  system("pause");
  break;
default:
	printf ("Opcao selecionada não corresponde aos itens acima");

}
getch ();
return (0);
}

 

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Josuke   seu programa está bom , mas precisa uma  melhor organização , e um erro , você esqueceu alguns ponto_e_virgula no final da linha que precisa na linguagem c/c++ etc... ,  colocou cout sem declarar using namespace std; , o scanf é assim scanf("%d",&num1);  , existe o do/while e o while sozinho , ali você misturou os dois , na opção 4 ,   e precisa fazer a identação do código , para que ele fique mais legível e fácil de ler , nos printf precisa observar as aspas duplas ,  não precisa repetir o código pois para isso existe os laços de repetição for while do/while ,  na opção 3 seu método de ordenação está certo mas você usou uma variável simples para guardar os números digitado e precisa ser um vetor ,  então seu código com algumas modificações poderia ser assim   :

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main(){
    int ano,i,h,t,a=-1,m=-1,d=-1,ah=-1,opcao;
    int mh=-1,dh=-1,ida,mi,id,bissexto=0;
    int y,z,x[10],aux,n,p,c,r=1,num1,par,impar,resto;
    int Numero,Fatorial,Primo,Resposta,Flag;
    do{
        printf("_____________________________ \n");
        printf("[1] para receber Dez numeros e classifica-los em par ou impar.\n");
        printf("[2] para receber numeros naturais de 1 ate 20 e exibir todos os valores primos.\n");
        printf("[3] para receber 10 números e coloca-los em ordem decrescente.\n");
        printf("[4] para calcular a idade de uma pessoa em Dias ,\n");
        printf("    a partir da data de nascimento e data atual.\n");
        printf("[5] para sair . . . !\n");
        printf("==========_____________________________=============\n");
        printf("DIGITE DE 1 A 5 PARA ESCOLHER UMA DAS OPÇÕES ACIMA: ");
        scanf("%d",&opcao);
        switch(opcao){
        case 1:
            printf("Digite 10 Numeros Para Saber Se eh Par Ou Impar\n");
            for(i=0;i<10;i++){
                printf ("Digite O %d%c numero : ",i+1,167);
                scanf("%d",&num1);
                if(num1 % 2 == 0){
                    printf ("%d , Numero Par\n\n",num1);
                }
                else{
                    printf ("%d , Numero Impar\n\n",num1);
                }
            }
            break;
        case 2:
            system("cls");            
            printf("Digite 20 Numero Para Saber Se eh Primo\n");
            while(r<21){
                printf ("\nDigite o %d%c numero natural: ",r,167);
                scanf("%d",&Numero);
                for(Primo=2;Primo<=Numero;Primo++){
                    Fatorial = 2;
                    Flag =0;
                    while(Primo != Fatorial){
                        Resposta = Primo % Fatorial;
                        Fatorial = Fatorial + 1;
                        if(Resposta == 0 ){
                            Flag = 1;
                        }
                    }
                    if(! Flag){
                        if(Numero==Primo)printf("%d%c Numero --> %d , eh Primo !",r,167,Primo);
                   }
                } 
                printf("\n");
                r++;
            }
            break;
        case 3:
            printf("Insira 10 Numeros Para Colocar Em Ordem Decrescente\n");
            for(y=0;y<10;y++){
                printf("Digite O %d%c numero: ",y+1,167);
                scanf("%d",&x[y]); 
            }
            for(y=0;y<10;y++)       {
                for(z=y+1;z<10;z++) {
                    if( x[z] > x[y]){
                        aux  = x[y] ;
                        x[y] = x[z] ;
                        x[z] = aux  ;
                    }
                }
            }
            printf("\nOs numeros em ordem decrescente sao: \n\n");
            for(y=0;y<10;y++){
                printf("%d - ",x[y]);
           }
           printf("\n\n");
           break;
        case 4:
            
        /*while(d<0 || m<0 || a<0){
            if(d>31||d<1){
                printf("Preencha os dados sobre a data de seu nascimento:\n");
                printf("Informe o dia de nascimento (ex. 16): d = ");
                scanf("%d", &d);
                goto REFAZ;
            }
            if((m==4 || m==6 || m==9 || m==11) && (d>30||d<1)){
                printf("\nFavor escolher um numero de 1 a 30. \n\n");
                goto REFAZ;
            }
            if(((bissexto==1)&&(m==2))&&((d<1)||(d>29))){
                printf("\nFavor escolher um numero de 1 a 29. \n\n");
                goto REFAZ;
            }
            if(((bissexto==0)&&(m==2))&&((d<1)||(d>28))){
                printf("\nFavor escolher um numero de 1 a 28. \n\n");
                goto REFAZ;
            }       	
            if (m>12||m<1){
                printf("Informe o mes de nascimento (ex. 11): m = ");
                scanf("%d", &m);
            }
    }while(m>12||m<1);
    if(a>2100||a<1900){
        printf("Informe o ano de nascimento (ex.1984): a = ");
    }
    }while (a>2100||a<1900);
    if((a % 4 == 0) && ((a%400==0)||(a % 100 != 0))){
        [printf("Ano Bissexto! \n\n");
        bissexto = 1;}
        scanf("%d", &a);
        printf("Insira o mes: \n\n");
        scanf("%d", &m);
        if((m==4 || m==6 || m==9 || m==11) && (d>30||d<1))
        printf("\nData de nascimento informada = %d/%d/%d", d, m, a);
        printf("\nData atual informada = %d/%d/%d\n", dh, mh, ah);
        i = d + m*30 + a*365;
        h = dh + mh*30 + ah*365;
        id=h-i;
        ida = ah-a;
        mi= 12-m+mh+ida*12;
    }
    if(m>mh){
        printf("\nIdade = %d",ida-1);
    else
        printf("\nIdade em anos = %d anos", ida);
    }
    printf("\nIdade em meses = %d meses", id/30);
    //12-m+(m-mh)+(ida*12)
    printf("\nIdade hoje = %d dias", id);
    }*/
            break;
        case 5:
            printf("Saindo Do Programa . . . !\n\n");
            system("pause");
            break;
        default:
            printf ("Opcao selecionada não corresponde aos itens acima");
        }
    }while(opcao !=5);
    return (0);
}

 

  • Curtir 1
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, devair1010 disse:

@Josuke   seu programa está bom , mas precisa uma  melhor organização , e um erro , você esqueceu alguns ponto_e_virgula no final da linha que precisa na linguagem c/c++ etc... ,  colocou cout sem declarar using namespace std; , o scanf é assim scanf("%d",&num1);  , existe o do/while e o while sozinho , ali você misturou os dois , na opção 4 ,   e precisa fazer a identação do código , para que ele fique mais legível e fácil de ler , nos printf precisa observar as aspas duplas ,  não precisa repetir o código pois para isso existe os laços de repetição for while do/while ,  na opção 3 seu método de ordenação está certo mas você usou uma variável simples para guardar os números digitado e precisa ser um vetor ,  então seu código com algumas modificações poderia ser assim   :


#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main(){
    int ano,i,h,t,a=-1,m=-1,d=-1,ah=-1,opcao;
    int mh=-1,dh=-1,ida,mi,id,bissexto=0;
    int y,z,x[10],aux,n,p,c,r=1,num1,par,impar,resto;
    int Numero,Fatorial,Primo,Resposta,Flag;
    do{
        printf("_____________________________ \n");
        printf("[1] para receber Dez numeros e classifica-los em par ou impar.\n");
        printf("[2] para receber numeros naturais de 1 ate 20 e exibir todos os valores primos.\n");
        printf("[3] para receber 10 números e coloca-los em ordem decrescente.\n");
        printf("[4] para calcular a idade de uma pessoa em Dias ,\n");
        printf("    a partir da data de nascimento e data atual.\n");
        printf("[5] para sair . . . !\n");
        printf("==========_____________________________=============\n");
        printf("DIGITE DE 1 A 5 PARA ESCOLHER UMA DAS OPÇÕES ACIMA: ");
        scanf("%d",&opcao);
        switch(opcao){
        case 1:
            printf("Digite 10 Numeros Para Saber Se eh Par Ou Impar\n");
            for(i=0;i<10;i++){
                printf ("Digite O %d%c numero : ",i+1,167);
                scanf("%d",&num1);
                if(num1 % 2 == 0){
                    printf ("%d , Numero Par\n\n",num1);
                }
                else{
                    printf ("%d , Numero Impar\n\n",num1);
                }
            }
            break;
        case 2:
            system("cls");            
            printf("Digite 20 Numero Para Saber Se eh Primo\n");
            while(r<21){
                printf ("\nDigite o %d%c numero natural: ",r,167);
                scanf("%d",&Numero);
                for(Primo=2;Primo<=Numero;Primo++){
                    Fatorial = 2;
                    Flag =0;
                    while(Primo != Fatorial){
                        Resposta = Primo % Fatorial;
                        Fatorial = Fatorial + 1;
                        if(Resposta == 0 ){
                            Flag = 1;
                        }
                    }
                    if(! Flag){
                        if(Numero==Primo)printf("%d%c Numero --> %d , eh Primo !",r,167,Primo);
                   }
                } 
                printf("\n");
                r++;
            }
            break;
        case 3:
            printf("Insira 10 Numeros Para Colocar Em Ordem Decrescente\n");
            for(y=0;y<10;y++){
                printf("Digite O %d%c numero: ",y+1,167);
                scanf("%d",&x[y]); 
            }
            for(y=0;y<10;y++)       {
                for(z=y+1;z<10;z++) {
                    if( x[z] > x[y]){
                        aux  = x[y] ;
                        x[y] = x[z] ;
                        x[z] = aux  ;
                    }
                }
            }
            printf("\nOs numeros em ordem decrescente sao: \n\n");
            for(y=0;y<10;y++){
                printf("%d - ",x[y]);
           }
           printf("\n\n");
           break;
        case 4:
            
        /*while(d<0 || m<0 || a<0){
            if(d>31||d<1){
                printf("Preencha os dados sobre a data de seu nascimento:\n");
                printf("Informe o dia de nascimento (ex. 16): d = ");
                scanf("%d", &d);
                goto REFAZ;
            }
            if((m==4 || m==6 || m==9 || m==11) && (d>30||d<1)){
                printf("\nFavor escolher um numero de 1 a 30. \n\n");
                goto REFAZ;
            }
            if(((bissexto==1)&&(m==2))&&((d<1)||(d>29))){
                printf("\nFavor escolher um numero de 1 a 29. \n\n");
                goto REFAZ;
            }
            if(((bissexto==0)&&(m==2))&&((d<1)||(d>28))){
                printf("\nFavor escolher um numero de 1 a 28. \n\n");
                goto REFAZ;
            }       	
            if (m>12||m<1){
                printf("Informe o mes de nascimento (ex. 11): m = ");
                scanf("%d", &m);
            }
    }while(m>12||m<1);
    if(a>2100||a<1900){
        printf("Informe o ano de nascimento (ex.1984): a = ");
    }
    }while (a>2100||a<1900);
    if((a % 4 == 0) && ((a%400==0)||(a % 100 != 0))){
        [printf("Ano Bissexto! \n\n");
        bissexto = 1;}
        scanf("%d", &a);
        printf("Insira o mes: \n\n");
        scanf("%d", &m);
        if((m==4 || m==6 || m==9 || m==11) && (d>30||d<1))
        printf("\nData de nascimento informada = %d/%d/%d", d, m, a);
        printf("\nData atual informada = %d/%d/%d\n", dh, mh, ah);
        i = d + m*30 + a*365;
        h = dh + mh*30 + ah*365;
        id=h-i;
        ida = ah-a;
        mi= 12-m+mh+ida*12;
    }
    if(m>mh){
        printf("\nIdade = %d",ida-1);
    else
        printf("\nIdade em anos = %d anos", ida);
    }
    printf("\nIdade em meses = %d meses", id/30);
    //12-m+(m-mh)+(ida*12)
    printf("\nIdade hoje = %d dias", id);
    }*/
            break;
        case 5:
            printf("Saindo Do Programa . . . !\n\n");
            system("pause");
            break;
        default:
            printf ("Opcao selecionada não corresponde aos itens acima");
        }
    }while(opcao !=5);
    return (0);
}

 

@devair1010 Meu caro amigo devair, muito obrigado pela ajuda, o seu codigo serviu base aqui, consegui ver os meus erros e identificar, muito obrigado por ter disponibilizado um pouco do seu tempo para me ajudar, obrigado mesmo!

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Josuke Não pelo contrário. Não apagamos tópicos assim.

 

Poderia por gentileza  postar qual foi a solução encontrada? Ou se uma das respostas aqui resolveu o seu problema, por favor marque ela como melhor resposta.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
20 minutos atrás, DiF disse:

@Josuke Não pelo contrário. Não apagamos tópicos assim.

 

Poderia por gentileza  postar qual foi a solução encontrada? Ou se uma das respostas aqui resolveu o seu problema, por favor marque ela como melhor resposta.

 

Eu dei um coração na resposta que me ajudou, que foi a segunda, não sei como faço para colocar melhor resposta

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Josuke Repare que todo post tem uma bolinha com um "V" dentro do lado do seu nick. Clique nele no post que quer definir como melhor resposta

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
18 minutos atrás, DiF disse:

@Josuke Repare que todo post tem uma bolinha com um "V" dentro do lado do seu nick. Clique nele no post que quer definir como melhor resposta

 

Pronto

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×