rovisilva 0 Denunciar post Postado Maio 6, 2008 Olá pessoal, tenho duas dúvidas... a primeira, que foge um pouco do que eu estou fazendo é como utilizar a função "cout", da biblioteca <iostream.h> e saber como ela é representada em um pseudocódigo, e fora isso, gostaria de resolver um problema. Segue abaixo: Escreva um programa que mostre todos os números primos a partir de 1 até o número n informado pelo usuário. Exemplo: sendo informado o número 20, o programa deverá mostrar os seguintes números primos: 1 2 3 5 7 9 11 13 17 19 Eu cheguei em uma lógica para mostrar a quantidade de números primos solicitada, mas gostaria de seguir o que é pedido. Olhem o programa: #include <stdio.h> #include <conio.h> int main() { int i=1; int b=2; int c=0; int d, e=0; printf("Entre o numero de numeros primos desejados: "); scanf("%d", &d); while(e<d) { while(b<i) { if(i % b == 0) { c=1; break; } b=b+1; } b=2; if(c==0) { printf("%d\n", i); e++; } c=0; i++; } getch(); } Abraços http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Maio 6, 2008 veja esse programinha, faz um pedaço do q você qr: #include <stdio.h> #include <stdlib.h> int main(void) { int numero=1, i; while(numero){ printf("Digite '0' para sair."); printf("Digite um numero: "); scanf("%d",&numero); for(i=2;i<=(numero>>1)+1;i++) { if (numero == 1 || numero == 2 || numero == 3) { break; } if (!(numero%i)) { printf("\n\n\t%d nao eh primo, ele eh divisivel por %d.\n",numero,i); break; } } if ((numero%i) || (numero == 1) || (numero == 2) || (numero == 3)) { printf("\n\n\t%d eh primo.\n",numero); } } system("PAUSE"); return 0; } bom em relação ao cout ele é representado pelo escreva, você pode usar ele assim: #include <iostream> using namespace std; int main(){ cout << "OI" <<endl; . . system("pause"); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Maio 6, 2008 Quit,pára de fazer esses códigos frankenstein... :D zuera #include <stdio.h> int main(void) { int numero=0; int divisor,i; INICIO: do { printf("Digite um numero (0 para sair): "); scanf("%d",&numero); } while(numero<0); if (numero) { for(i=2;i<=numero;i++) { divisor = 2; while(divisor < i && !(i%divisor)) divisor++; if (divisor == i) printf("\n%d",i); } goto INICIO; } } Antes de começar com xiitismos por causa de um goto*: 1º) O primeiro do-while já filtra os numeros negativos .você so sai dele se digitar um numero >=0 2º) O if deixa passar somente numeros positivos. Se for zero,sai do programa. 3º) No final do if vai ter que retornar ao inicio e perguntar de novo. 4º) Se eu colocar um do-while externo,vou comparar duas vezes. * aqui na universidade evangelizam sobre nao usar goto. Quero que morram todos secos.O fato de existir um jump incondicional não quer dizer que ele não preste pra algo simplesmente porque em Assembly ele gera código macarrônico. Compartilhar este post Link para o post Compartilhar em outros sites
Gustavo Rodrigues Torre 0 Denunciar post Postado Maio 8, 2008 Quit este aqui tb resolve o problema Este aqui também resolve o seu problema http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif /*Mostrar todos os numeros primos*/ # include<stdio.h> # include<stdlib.h> main() { int n,d,c,a=1; while (a==1) { system("cls"); //Comando para limpar a tela system("color 2F"); //Comando para mudar a cor de fundo e da fonte printf("\nEntre com um numero natural: "); scanf("%d",&n); printf("\nO numero %3d eh primo.",1); //Mostrar todos os primos for (d=1;d<=n;d++) { for (c=2;c<=d-1;c++) if (d%c == 0) break; if (c==d) printf("\nO numero %3d eh primo.",d); } printf("\nDeseja entrar com um novo numero? (1)Sim (0)Nao\n\n"); scanf("%d",&a); } system("pause"); return 0; } //Fim do programa Quit,pára de fazer esses códigos frankenstein... :D zuera #include <stdio.h> int main(void) { int numero=0; int divisor,i; INICIO: do { printf("Digite um numero (0 para sair): "); scanf("%d",&numero); } while(numero<0); if (numero) { for(i=2;i<=numero;i++) { divisor = 2; while(divisor < i && !(i%divisor)) divisor++; if (divisor == i) printf("\n%d",i); } goto INICIO; } } Antes de começar com xiitismos por causa de um goto*: 1º) O primeiro do-while já filtra os numeros negativos .você so sai dele se digitar um numero >=0 2º) O if deixa passar somente numeros positivos. Se for zero,sai do programa. 3º) No final do if vai ter que retornar ao inicio e perguntar de novo. 4º) Se eu colocar um do-while externo,vou comparar duas vezes. * aqui na universidade evangelizam sobre nao usar goto. Quero que morram todos secos.O fato de existir um jump incondicional não quer dizer que ele não preste pra algo simplesmente porque em Assembly ele gera código macarrônico. Compartilhar este post Link para o post Compartilhar em outros sites